Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Oct 2009 21:07:48 +0000 (UTC)
From:      Edwin Groothuis <edwin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r197755 - user/edwin/locale/usr.bin/unicode2utf8
Message-ID:  <200910042107.n94L7mPj085391@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: edwin
Date: Sun Oct  4 21:07:48 2009
New Revision: 197755
URL: http://svn.freebsd.org/changeset/base/197755

Log:
  Stylify.

Modified:
  user/edwin/locale/usr.bin/unicode2utf8/unicode2utf8.c

Modified: user/edwin/locale/usr.bin/unicode2utf8/unicode2utf8.c
==============================================================================
--- user/edwin/locale/usr.bin/unicode2utf8/unicode2utf8.c	Sun Oct  4 21:07:19 2009	(r197754)
+++ user/edwin/locale/usr.bin/unicode2utf8/unicode2utf8.c	Sun Oct  4 21:07:48 2009	(r197755)
@@ -1,10 +1,40 @@
+/*-
+ * Copyright (c) 2009 Edwin Groothuis <edwin@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include <sys/param.h>
+
+#include <err.h>
+#include <errno.h>
+#include <getopt.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <getopt.h>
-#include <err.h>
-#include <errno.h>
 #include <sysexits.h>
 
 #define MAXBUF	512
@@ -23,16 +53,19 @@ struct utf8map	*get_utf8map(char *dir);
 struct utf8map	*find_utf8map(char *unidata);
 void		 translate(char *file_in, char *file_out);
 
+int debug = 0;
+
 int
-main(int argc, char **argv) {
+main(int argc, char *argv[])
+{
 	char *cldr = NULL, *file_in = NULL, *file_out = NULL;
 	char ch;
 
-	/* options descriptor */
 	static struct option longopts[] = {
 		{ "cldr",	required_argument,	NULL,	1 },
-		{ "input",	required_argument,	NULL,	3 },
-		{ "output",	required_argument,	NULL,	4 },
+		{ "input",	required_argument,	NULL,	2 },
+		{ "output",	required_argument,	NULL,	3 },
+		{ "debug",	no_argument,		NULL,	4 },
 		{ NULL,		0,			NULL,	0 }
 	};
 
@@ -41,12 +74,14 @@ main(int argc, char **argv) {
 		case 1:
 			cldr = optarg;
 			break;
-		case 3:
+		case 2:
 			file_in = optarg;
 			break;
-		case 4:
+		case 3:
 			file_out = optarg;
 			break;
+		case 4:
+			debug++;
 			break;
 		default:
 			usage();
@@ -55,16 +90,19 @@ main(int argc, char **argv) {
 	argc -= optind;
 	argv += optind;
 
+	if (cldr == NULL || file_in == NULL || file_out == NULL)
+		usage();
+
 	get_utf8map(cldr);
 	translate(file_in, file_out);
 }
 
 void
-translate(char *file_in, char *file_out) {
-	FILE *fin, *fout;
-	char line[MAXBUF];
-	char *p, *q1, *q2;
+translate(char *file_in, char *file_out)
+{
 	struct utf8map *map;
+	FILE *fin, *fout;
+	char *p, *q1, *q2, line[MAXBUF];
 
 	if ((fin = fopen(file_in, "r")) == NULL)
 		errx(EX_DATAERR, "Cannot open %s for reading.", file_in);
@@ -110,7 +148,8 @@ translate(char *file_in, char *file_out)
 }
 
 struct utf8map *
-find_utf8map(char *uniname) {
+find_utf8map(char *uniname)
+{
 	struct utf8map *p;
 	int hashindex = uniname[strlen(uniname) - 1];
 
@@ -118,7 +157,8 @@ find_utf8map(char *uniname) {
 	while (p != NULL) {
 		if (strcmp(p->uniname, uniname) == 0)
 			return p;
-		// printf("'%s' - '%s'\n", p->uniname, uniname);
+		if (debug)
+			printf("'%s' - '%s'\n", p->uniname, uniname);
 		p = p->next;
 	}
 
@@ -126,14 +166,12 @@ find_utf8map(char *uniname) {
 }
 
 struct utf8map *
-get_utf8map(char *dir) {
-	FILE *fin;
-	char filename[MAXPATHLEN];
-	char uniname[MAXBUF], utf8char[MAXBUF];
-	char *p;
-	int len, i;
+get_utf8map(char *dir)
+{
 	struct utf8map *new;
-	int hashindex;
+	FILE *fin;
+	int len, i, hashindex;
+	char filename[MAXPATHLEN], uniname[MAXBUF], utf8char[MAXBUF], *p;
 
 	sprintf(filename, "%s/posix/UTF-8.cm", dir);
 
@@ -155,7 +193,7 @@ get_utf8map(char *dir) {
 			 && strcmp(utf8char, "CHARMAP") == 0)
 				break;
 
-			/* Get rid of the _'s in the name */
+			/* Get rid of the _'s in the name. */
 			while ((p = strchr(uniname, '_')) != NULL)
 				*p = ' ';
 			if ((p = strchr(uniname, '>')) == NULL)
@@ -167,7 +205,7 @@ get_utf8map(char *dir) {
 				errx(EX_DATAERR, "No leading '<' for %s",
 				    uniname);
 
-			/* Translate hex strings into ascii-strings */
+			/* Translate hex strings into ascii-strings. */
 			len = strlen(utf8char);
 			if (len % 4 != 0)
 				errx(EX_DATAERR, "Wrong length: '%s'",
@@ -176,7 +214,7 @@ get_utf8map(char *dir) {
 			for (i = 0; i < len; i++) {
 				/*
 				 * Not setting will produce wrong results for
-				 * the unicode string NULL
+				 * the unicode string NULL.
 				 */
 				errno = 0;
 
@@ -190,7 +228,9 @@ get_utf8map(char *dir) {
 				utf8char[len] = 0;
 			}
 
-			// printf("-%s-%s-\n", uniname, utf8char);
+			if (debug)
+				printf("-%s-%s-\n", uniname, utf8char);
+
 			new = (struct utf8map *)malloc(sizeof(struct utf8map));
 			new->next = utf8map_head[hashindex];
 			new->uniname = strdup(uniname + 1);
@@ -202,16 +242,16 @@ get_utf8map(char *dir) {
 
 	if (feof(fin))
 		errx(EX_DATAERR, "Didn't find final CHARMAP magic cookie.\n");
-
 	fclose(fin);
 
 	return NULL;
 }
 
 void
-usage(void) {
+usage(void)
+{
 
-	printf("Usage: unicode2utf8 --cldr=. --input=. --output=.\n");
+	printf("Usage: unicode2utf8 --cldr=dir --input=file --output=file\n");
 	exit(EX_USAGE);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910042107.n94L7mPj085391>