ports/58621: Update port: databases/dbf to 0.7

KATO Tsuguru tkato at prontomail.com
Tue Oct 28 13:50:23 UTC 2003


>Number:         58621
>Category:       ports
>Synopsis:       Update port: databases/dbf to 0.7
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 28 05:50:09 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     KATO Tsuguru
>Release:        FreeBSD 4.9-RELEASE i386
>Organization:
>Environment:
>Description:
- Update to version 0.7

Remove file:
files/patch-pending

>How-To-Repeat:
>Fix:

diff -urN /usr/ports/databases/dbf/Makefile databases/dbf/Makefile
--- /usr/ports/databases/dbf/Makefile	Thu Aug 21 09:02:00 2003
+++ databases/dbf/Makefile	Fri Oct 24 22:12:00 2003
@@ -7,7 +7,7 @@
 #
 
 PORTNAME=	dbf
-PORTVERSION=	0.6
+PORTVERSION=	0.7
 CATEGORIES=	databases
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
@@ -17,6 +17,13 @@
 COMMENT=	Show and convert the content of dBASE III, IV, and 5.0 files
 
 WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}/src
+
+USE_REINPLACE=	yes
+
+post-patch:
+.for file in endian.h tables.h
+	@${REINPLACE_CMD} -e '/typedef u_int/d' ${WRKSRC}/${file}
+.endfor
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/dbf ${PREFIX}/bin
diff -urN /usr/ports/databases/dbf/distinfo databases/dbf/distinfo
--- /usr/ports/databases/dbf/distinfo	Thu Aug 21 09:02:00 2003
+++ databases/dbf/distinfo	Fri Oct 24 21:59:57 2003
@@ -1 +1 @@
-MD5 (dbf-0.6.src.tar.gz) = 6048a2c8096e3f4d9a17639a8646b738
+MD5 (dbf-0.7.src.tar.gz) = 048ac02835d73d845d4d547351924394
diff -urN /usr/ports/databases/dbf/files/patch-pending databases/dbf/files/patch-pending
--- /usr/ports/databases/dbf/files/patch-pending	Thu Aug 21 06:44:34 2003
+++ databases/dbf/files/patch-pending	Thu Jan  1 09:00:00 1970
@@ -1,1037 +0,0 @@
-This patch was submitted to the dbf project at SourceForge.net.
-Hopefully, their next release will include these hunks.
-
-	-mi
-
---- an_string.c	Thu May  8 14:53:15 2003
-+++ an_string.c	Wed Aug 20 15:58:35 2003
-@@ -17,19 +17,28 @@
-  ************************************************************************************/
-  
-+#include <assert.h>
- #include "an_string.h"
- 
-  /* * * * TRIM_SPACES 
-- * removes sequently spaces in a string (most time two and more) */
--void trim_spaces (char *q, char *p)
-+ * removes sequently spaces in a string (most time two and more)
-+ * returns the address of the character following the last in the
-+ * new string */
-+unsigned char *
-+trim_spaces(unsigned char *q, const unsigned char *p, size_t len)
- {					
--	unsigned int i;
--	
--	for(i=0; i < strlen(p); i++) {		
--		if( *(p+i) != ' ')
--			*q++ = *(p+i);
--		if( *(p+(i-1)) != ' ' && *(p+i) == ' ' && *(p+(i+1)) != ' ') 
--			*q++ = *(p+i);									
--	}
-+	size_t i;
-+
-+	assert(len > 0);
- 	
-+	if (p[0] != ' ')
-+		*q++ = p[0];
-+	len--;
-+	for(i=1; i < len; i++)
-+		if (p[i] != ' ' || p[i-1] != ' ' && p[i+1] != ' ')
-+			*q++ = p[i];
-+
-+	if (p[i] != ' ')
-+		*q++ = p[i];
-+	return q;
- }
- 
-@@ -37,11 +46,12 @@
-  * we use this function to get the number of umlauts in
-  * the string and decide if we have to convert or not */
--int countumlauts (char *src) {
-+int
-+countumlauts (const char *src)
-+{
- 	int count;
--	int unsigned i;
- 	count = 0;
--	for(i=0; i < strlen(src); i++) {
--		printf("%c\n",*(src+i));
--    	switch(*(src+i)) {
-+	for(; *src; src++) {
-+		printf("%c\n", *src);
-+    	switch(*src) {
-       	case '\341':
- 			printf("__ gefunden\n");
-@@ -67,5 +77,6 @@
- /* * * * CONVUML
-  * converts german special chars into standard chars */
--void convuml (char *dest, char *src)
-+void
-+convuml(char *dest, const char *src)
- {	
- 	while(*src != '\0') {
---- an_string.h	Thu May  8 14:53:15 2003
-+++ an_string.h	Wed Aug 20 15:58:35 2003
-@@ -24,7 +24,7 @@
- #include <string.h>
- 
--void trim_spaces (char *q, char *p);
--int countumlauts (char *src);
--void convuml (char *dest, char *src);
-+unsigned char * trim_spaces (unsigned char *dest, const unsigned char *src, size_t srclen);
-+int countumlauts (const char *src);
-+void convuml (char *dest, const char *src);
- 
- #endif
---- codepages.c	Thu May  8 14:53:15 2003
-+++ codepages.c	Wed Aug 20 15:58:35 2003
-@@ -24,117 +24,117 @@
- void cp850convert (unsigned char *src)
- {
--	int unsigned i;
--	for(i=0; i < strlen(src); i++) {
--		switch(*(src+i)) {
-+
-+	for (;*src; src++) {
-+		switch(*src) {
- 		case 0xE4:
--			*(src+i) = (unsigned char)228;	/*auml (GER)*/
-+			*src = (unsigned char)228;	/*auml (GER)*/
- 			break;
- 		case 0xC4:
--			*(src+i) = (unsigned char)196;	/*Auml (GER)*/
-+			*src = (unsigned char)196;	/*Auml (GER)*/
- 			break;			
- 		case 0xF6:
--			*(src+i) = (unsigned char)246;	/*ouml (GER)*/
-+			*src = (unsigned char)246;	/*ouml (GER)*/
- 			break;
- 		case 0xD6:
--			*(src+i) = (unsigned char)214;	/*Ouml (GER)*/
-+			*src = (unsigned char)214;	/*Ouml (GER)*/
- 			break;			
- 		case 0xFC:
--			*(src+i) = (unsigned char)252;	/*uuml (GER)*/
-+			*src = (unsigned char)252;	/*uuml (GER)*/
- 			break;	 
- 		case 0xDC:
--			*(src+i) = (unsigned char)220;	/*Uuml (GER)*/
-+			*src = (unsigned char)220;	/*Uuml (GER)*/
- 			break;	
- 		case 0xDF:
--			*(src+i) = (unsigned char)223;	/*szlig (GER)*/
-+			*src = (unsigned char)223;	/*szlig (GER)*/
- 			break;	
- 		case 0xE9:
--			*(src+i) = (unsigned char)233;	/*eacute (FR)*/
-+			*src = (unsigned char)233;	/*eacute (FR)*/
- 			break;
- 		case 0xE2:
--			*(src+i) = (unsigned char)226;	/*acirc (FR)*/
-+			*src = (unsigned char)226;	/*acirc (FR)*/
- 			break;			
- 		case 0xE0:
--			*(src+i) = (unsigned char)233;	/*agrave (FR)*/
-+			*src = (unsigned char)233;	/*agrave (FR)*/
- 			break;	
- 		case 0xEA:
--			*(src+i) = (unsigned char)234;	/*ecirc (FR)*/
-+			*src = (unsigned char)234;	/*ecirc (FR)*/
- 			break;	
- 		case 0xE8:
--			*(src+i) = (unsigned char)232;	/*egrave (FR)*/
-+			*src = (unsigned char)232;	/*egrave (FR)*/
- 			break;	
- 		case 0xEE:
--			*(src+i) = (unsigned char)238;	/*icirc	(FR)*/
-+			*src = (unsigned char)238;	/*icirc	(FR)*/
- 			break;	
- 		case 0xEC:
--			*(src+i) = (unsigned char)236;	/*igrave (FR)*/
-+			*src = (unsigned char)236;	/*igrave (FR)*/
- 			break;	
- 		case 0xC9:
--			*(src+i) = (unsigned char)201;	/*Eacute (FR)*/
-+			*src = (unsigned char)201;	/*Eacute (FR)*/
- 			break;	
- 		case 0xF4:
--			*(src+i) = (unsigned char)244; /*ocirc (FR)*/
-+			*src = (unsigned char)244; /*ocirc (FR)*/
- 			break;	
- 		case 0xF2:
--			*(src+i) = (unsigned char)242;	/*ograve (FR)*/
-+			*src = (unsigned char)242;	/*ograve (FR)*/
- 			break;	
- 		case 0xFB:
--			*(src+i) = (unsigned char)251;	/*ucirc (FR)*/
-+			*src = (unsigned char)251;	/*ucirc (FR)*/
- 			break;	
- 		case 0xF9:
--			*(src+i) = (unsigned char)249;	/*ugrave (FR)*/
-+			*src = (unsigned char)249;	/*ugrave (FR)*/
- 			break;	
- 		case 0xE1:
--			*(src+i) = (unsigned char)225;	/*aacute (FR)*/
-+			*src = (unsigned char)225;	/*aacute (FR)*/
- 			break;	
- 		case 0xED:
--			*(src+i) = (unsigned char)237;	/*iacute (FR)*/
-+			*src = (unsigned char)237;	/*iacute (FR)*/
- 			break;	
- 		case 0xF3:
--			*(src+i) = (unsigned char)243;	/*oacute (FR)*/
-+			*src = (unsigned char)243;	/*oacute (FR)*/
- 			break;	
- 		case 0xFA:
--			*(src+i) = (unsigned char)250;	/*uacute (FR)*/
-+			*src = (unsigned char)250;	/*uacute (FR)*/
- 			break;	
- 		case 0xC1:
--			*(src+i) = (unsigned char)193;	/*Aacute (FR)*/
-+			*src = (unsigned char)193;	/*Aacute (FR)*/
- 			break;		
- 		case 0xC2:
--			*(src+i) = (unsigned char)194;	/*Acirc (FR)*/
-+			*src = (unsigned char)194;	/*Acirc (FR)*/
- 			break;		
- 		case 0xc0:
--			*(src+i) = (unsigned char)192;	/*Agrave (FR)*/
-+			*src = (unsigned char)192;	/*Agrave (FR)*/
- 			break;		
- 		case 0xCA:
--			*(src+i) = (unsigned char)202;	/*Ecirc (FR)*/
-+			*src = (unsigned char)202;	/*Ecirc (FR)*/
- 			break;		
- 		case 0xC8:
--			*(src+i) = (unsigned char)200;	/*Egrave (FR)*/
-+			*src = (unsigned char)200;	/*Egrave (FR)*/
- 			break;		
- 		case 0xCD:
--			*(src+i) = (unsigned char)205;	/*Iacute (FR)*/
-+			*src = (unsigned char)205;	/*Iacute (FR)*/
- 			break;		
- 		case 0xCE:
--			*(src+i) = (unsigned char)206;	/*Icirc (FR)*/
-+			*src = (unsigned char)206;	/*Icirc (FR)*/
- 			break;		
- 		case 0xCC:
--			*(src+i) = (unsigned char)204;	/*Igrave (FR)*/
-+			*src = (unsigned char)204;	/*Igrave (FR)*/
- 			break;	
- 		case 0xD3:
--			*(src+i) = (unsigned char)211;	/*Oacute (FR)*/
-+			*src = (unsigned char)211;	/*Oacute (FR)*/
- 			break;			
- 		case 0xD4:
--			*(src+i) = (unsigned char)212;	/*Ocirc (FR)*/
-+			*src = (unsigned char)212;	/*Ocirc (FR)*/
- 			break;		
- 		case 0xD2:
--			*(src+i) = (unsigned char)210;	/*Ograve (FR)*/
-+			*src = (unsigned char)210;	/*Ograve (FR)*/
- 			break;		
- 		case 0xDA:
--			*(src+i) = (unsigned char)218;	/*Uacute (FR)*/
-+			*src = (unsigned char)218;	/*Uacute (FR)*/
- 			break;		
- 		case 0xDB:
--			*(src+i) = (unsigned char)219;	/*Ucirc (FR)*/
-+			*src = (unsigned char)219;	/*Ucirc (FR)*/
- 			break;		
- 		case 0xD9:
--			*(src+i) = (unsigned char)217;	/*Ugrave (FR)*/
-+			*src = (unsigned char)217;	/*Ugrave (FR)*/
- 			break;		
- 		}	
-@@ -145,117 +145,117 @@
- void ASCIInumbers (unsigned char *src)
- {
--	int unsigned i;
--	for(i=0; i < strlen(src); i++) {
--		switch(*(src+i)) {
-+
-+	for (; *src; src++) {
-+		switch(*src) {
- 		case 0x84:
--			*(src+i) = (unsigned char)228;	/*auml (GER)*/
-+			*src = (unsigned char)228;	/*auml (GER)*/
- 			break;
- 		case 0x8E:
--			*(src+i) = (unsigned char)196;	/*Auml (GER)*/
-+			*src = (unsigned char)196;	/*Auml (GER)*/
- 			break;			
- 		case 0x94:
--			*(src+i) = (unsigned char)246;	/*ouml (GER)*/
-+			*src = (unsigned char)246;	/*ouml (GER)*/
- 			break;
- 		case 0x99:
--			*(src+i) = (unsigned char)214;	/*Ouml (GER)*/
-+			*src = (unsigned char)214;	/*Ouml (GER)*/
- 			break;			
- 		case 0x81:
--			*(src+i) = (unsigned char)252;	/*uuml (GER)*/
-+			*src = (unsigned char)252;	/*uuml (GER)*/
- 			break;	 
- 		case 0x9A:
--			*(src+i) = (unsigned char)220;	/*Uuml (GER)*/
-+			*src = (unsigned char)220;	/*Uuml (GER)*/
- 			break;	
- 		case 0xE1:
--			*(src+i) = (unsigned char)223;	/*szlig (GER)*/
-+			*src = (unsigned char)223;	/*szlig (GER)*/
- 			break;	
- 		case 0x82:
--			*(src+i) = (unsigned char)233;	/*eacute (FR)*/
-+			*src = (unsigned char)233;	/*eacute (FR)*/
- 			break;
- 		case 0x83:
--			*(src+i) = (unsigned char)226;	/*acirc (FR)*/
-+			*src = (unsigned char)226;	/*acirc (FR)*/
- 			break;			
- 		case 0x85:
--			*(src+i) = (unsigned char)233;	/*agrave (FR)*/
-+			*src = (unsigned char)233;	/*agrave (FR)*/
- 			break;	
- 		case 0x88:
--			*(src+i) = (unsigned char)234;	/*ecirc (FR)*/
-+			*src = (unsigned char)234;	/*ecirc (FR)*/
- 			break;	
- 		case 0x8A:
--			*(src+i) = (unsigned char)232;	/*egrave (FR)*/
-+			*src = (unsigned char)232;	/*egrave (FR)*/
- 			break;	
- 		case 0x8C:
--			*(src+i) = (unsigned char)238;	/*icirc	(FR)*/
-+			*src = (unsigned char)238;	/*icirc	(FR)*/
- 			break;	
- 		case 0x8D:
--			*(src+i) = (unsigned char)236;	/*igrave (FR)*/
-+			*src = (unsigned char)236;	/*igrave (FR)*/
- 			break;	
- 		case 0x90:
--			*(src+i) = (unsigned char)201;	/*Eacute (FR)*/
-+			*src = (unsigned char)201;	/*Eacute (FR)*/
- 			break;	
- 		case 0x93:
--			*(src+i) = (unsigned char)244; /*ocirc (FR)*/
-+			*src = (unsigned char)244; /*ocirc (FR)*/
- 			break;	
- 		case 0x95:
--			*(src+i) = (unsigned char)242;	/*ograve (FR)*/
-+			*src = (unsigned char)242;	/*ograve (FR)*/
- 			break;	
- 		case 0x96:
--			*(src+i) = (unsigned char)251;	/*ucirc (FR)*/
-+			*src = (unsigned char)251;	/*ucirc (FR)*/
- 			break;	
- 		case 0x97:
--			*(src+i) = (unsigned char)249;	/*ugrave (FR)*/
-+			*src = (unsigned char)249;	/*ugrave (FR)*/
- 			break;	
- 		case 0xA0:
--			*(src+i) = (unsigned char)225;	/*aacute (FR)*/
-+			*src = (unsigned char)225;	/*aacute (FR)*/
- 			break;	
- 		case 0xA1:
--			*(src+i) = (unsigned char)237;	/*iacute (FR)*/
-+			*src = (unsigned char)237;	/*iacute (FR)*/
- 			break;	
- 		case 0xA2:
--			*(src+i) = (unsigned char)243;	/*oacute (FR)*/
-+			*src = (unsigned char)243;	/*oacute (FR)*/
- 			break;	
- 		case 0xA3:
--			*(src+i) = (unsigned char)250;	/*uacute (FR)*/
-+			*src = (unsigned char)250;	/*uacute (FR)*/
- 			break;	
- 		case 0xB5:
--			*(src+i) = (unsigned char)193;	/*Aacute (FR)*/
-+			*src = (unsigned char)193;	/*Aacute (FR)*/
- 			break;		
- 		case 0xB6:
--			*(src+i) = (unsigned char)194;	/*Acirc (FR)*/
-+			*src = (unsigned char)194;	/*Acirc (FR)*/
- 			break;		
- 		case 0xB7:
--			*(src+i) = (unsigned char)192;	/*Agrave (FR)*/
-+			*src = (unsigned char)192;	/*Agrave (FR)*/
- 			break;		
- 		case 0xD2:
--			*(src+i) = (unsigned char)202;	/*Ecirc (FR)*/
-+			*src = (unsigned char)202;	/*Ecirc (FR)*/
- 			break;		
- 		case 0xD3:
--			*(src+i) = (unsigned char)200;	/*Egrave (FR)*/
-+			*src = (unsigned char)200;	/*Egrave (FR)*/
- 			break;		
- 		case 0xD6:
--			*(src+i) = (unsigned char)205;	/*Iacute (FR)*/
-+			*src = (unsigned char)205;	/*Iacute (FR)*/
- 			break;		
- 		case 0xD7:
--			*(src+i) = (unsigned char)206;	/*Icirc (FR)*/
-+			*src = (unsigned char)206;	/*Icirc (FR)*/
- 			break;		
- 		case 0xDE:
--			*(src+i) = (unsigned char)204;	/*Igrave (FR)*/
-+			*src = (unsigned char)204;	/*Igrave (FR)*/
- 			break;	
- 		case 0xE0:
--			*(src+i) = (unsigned char)211;	/*Oacute (FR)*/
-+			*src = (unsigned char)211;	/*Oacute (FR)*/
- 			break;			
- 		case 0xE2:
--			*(src+i) = (unsigned char)212;	/*Ocirc (FR)*/
-+			*src = (unsigned char)212;	/*Ocirc (FR)*/
- 			break;		
- 		case 0xE3:
--			*(src+i) = (unsigned char)210;	/*Ograve (FR)*/
-+			*src = (unsigned char)210;	/*Ograve (FR)*/
- 			break;		
- 		case 0xE9:
--			*(src+i) = (unsigned char)218;	/*Uacute (FR)*/
-+			*src = (unsigned char)218;	/*Uacute (FR)*/
- 			break;		
- 		case 0xEA:
--			*(src+i) = (unsigned char)219;	/*Ucirc (FR)*/
-+			*src = (unsigned char)219;	/*Ucirc (FR)*/
- 			break;		
- 		case 0xEB:
--			*(src+i) = (unsigned char)217;	/*Ugrave (FR)*/
-+			*src = (unsigned char)217;	/*Ugrave (FR)*/
- 			break;				
- 		}	
---- csv.c	Thu May  8 14:53:15 2003
-+++ csv.c	Wed Aug 20 15:58:35 2003
-@@ -18,24 +18,20 @@
- /* writeCSVHeader */
- /* creates the CSV Header with the information provided by DB_FIELD */
--int writeCSVHeader (int fh, struct DB_FIELD *header[], struct DB_FIELD *dbf, int header_length)
-+int
-+writeCSVHeader (int fh, struct DB_FIELD * const header[],
-+    const struct DB_FIELD *dbf, int header_length)
- {
- 	int i;
--	char *q;
--	char buffer[65536];	
- 	
- 	for(i=1; i < header_length; i++) {
--		memset(buffer, 0, 65535);
--		dbf = header[i];			
--		strcpy(buffer,dbf->field_name);									
--		q = buffer+strlen(buffer);
--		*q++ = ';';
--		*q = '\0';
--		if((write(fh, buffer, strlen(buffer))) == -1)
-+		if ((write(fh, header[i]->field_name,
-+		    strlen((const char *)header[i]->field_name))) == -1
-+		    || write(fh, ";", 1) == -1)
- 		{
--			printf("Cannot write data to CSV File - Aborting!\n"); exit(1);
-+			perror("Cannot write data to CSV File - Aborting!"); exit(1);
- 		}
- 	}
--	if((write(fh, "\n", NEWLINE_LENGTH)) == -1) {
--		printf("Cannot write data to CSV File - Aborting!\n"); exit(1);
-+	if ((write(fh, "\n", NEWLINE_LENGTH)) == -1) {
-+		perror("Cannot write data to CSV File - Aborting!"); exit(1);
- 	}
- 	
-@@ -45,32 +41,38 @@
- /* writeCSVLine */
- /* creates a line in the CSV document for each data set */
--int writeCSVLine (int fh, char *value, struct DB_FIELD *header[], struct DB_FIELD *dbf, int header_length) {
--	char *p, *q;
--	int i, x;
--	char buffer[65536];
--	char NewString[65536];
--	
-+int
-+writeCSVLine(int fh, const unsigned char *value, struct DB_FIELD * const header[],
-+    const struct DB_FIELD *dbf, int header_length) {
-+	const unsigned char *p;
-+	unsigned char *q, *end;
-+	int i;
-+
- 	p = value;
-+	q = NULL;
- 	
- 	for (i=1; i < header_length; i++)
- 	{
--		memset(buffer, 0, 65535);
--		memset(NewString, 0, 65535);
--		dbf = header[i];													    
--		q = buffer;		
--		x = dbf->field_length;
--		while(x--)
--			*q++ = *p++;
--		*q++ = ';';				
--				
--		trim_spaces(NewString, buffer);																
--													
--		if((write(fh, NewString, strlen(NewString))) == -1) {
--			printf("Cannot write data to CSV File - Aborting!\n");
-+		dbf = header[i];
-+
-+		q = realloc(q, dbf->field_length + 2);
-+		if (!q) {
-+			perror("writeCSVLine");
-+			exit(1);
-+		}
-+
-+		end = trim_spaces(q, p, dbf->field_length);
-+		p += dbf->field_length;
-+		*end++ = ';';
-+		
-+		if (write(fh, q, end - q) == -1) {
-+			perror("Cannot write data to CSV File - Aborting!");
- 			exit(1);
- 		}
- 	}
-+	if (q)
-+		free(q);
-+
- 	if((write(fh, "\n", NEWLINE_LENGTH)) == -1) {
--		printf("Cannot write data to CSV File - Aborting!\n"); exit(1);
-+		perror("Cannot write data to CSV File - Aborting!"); exit(1);
- 	}
- 	return 0;				
---- csv.h	Thu May  8 14:53:15 2003
-+++ csv.h	Wed Aug 20 15:58:35 2003
-@@ -22,21 +22,19 @@
- #include "tables.h"
- #include "an_string.h"
-+
- #ifdef __unix__	
--	#include <sys/stat.h>
--    #define NEWLINE_LENGTH 2
--	#include <unistd.h>
--#elif __MSDOS__
--	#include <io.h>
--	#include <sys\stat.h>
--#elif _WIN32
--	#include <io.h>
--	#include <sys\stat.h>
--    #define NEWLINE_LENGTH 2
-+#	include <sys/stat.h>
-+#	include <unistd.h>
-+#	define NEWLINE_LENGTH 1
-+#elif __MSDOS__ || _WIN32
-+#	include <io.h>
-+#	include <sys\stat.h>
-+#	define NEWLINE_LENGTH 2
- #else    
--    #define NEWLINE_LENGTH 1
-+#	define NEWLINE_LENGTH 1
- #endif
- 
--int writeCSVHeader (int fh, struct DB_FIELD *header[], struct DB_FIELD *dbf, int header_length);
--int writeCSVLine (int fh, char *value, struct DB_FIELD *header[], struct DB_FIELD *dbf, int
-+int writeCSVHeader (int fh, struct DB_FIELD * const header[], const struct DB_FIELD *dbf, int header_length);
-+int writeCSVLine (int fh, const unsigned char *value, struct DB_FIELD * const header[], const struct DB_FIELD *dbf, int
- header_length);
- #endif
---- dbf.c	Thu May  8 14:53:15 2003
-+++ dbf.c	Wed Aug 20 16:20:37 2003
-@@ -41,4 +41,5 @@
-  ************************************************************************************/
- 
-+#include <assert.h>
- #include "dbf.h"
- 
-@@ -99,5 +100,5 @@
- {	
- 	if ((read( fh, (char *)db, sizeof(struct DB_HEADER))) == -1 ) {
--		printf("Error reading file %s.\n", file);
-+		perror(file);
- 		exit(1);
- 	}
-@@ -114,9 +115,9 @@
- 	{
- 		if((header[i] = (struct DB_FIELD *)malloc(sizeof(struct DB_FIELD))) == NULL) {
--			printf("Fatal error: Cannot malloc.\n");
-+			perror("malloc");
- 			exit(1);
- 		}
- 		if((read(fh, (char *)header[i], sizeof(struct DB_FIELD))) == -1) {
--			printf("Error reading file %s.\n", file);
-+			perror(file);
- 			exit(1);
- 		}
-@@ -205,10 +206,9 @@
- {	
- 	int dbfhandle, handle;
--	int header_length, i;
-+	int header_length, record_length, i;
- 	char *filename;
- 	int ppc_override; // Big Endian Check Override
--	int type;
--	char *foo, *p;
--	int k;	
-+	enum OUTPUT type = SCREEN_OUTPUT;
-+	unsigned char *foo, *p;
- 	ppc_override = 0;
- 	
-@@ -218,5 +218,5 @@
- 		
- 	if (argc < 2) {
--		printf("Usage: %s [option][argument] dbf-file, -h for help\n", *argv);
-+		fprintf(stderr, "Usage: %s [option][argument] dbf-file, -h for help\n", *argv);
- 		exit(1);
- 	} 
-@@ -246,6 +246,6 @@
- 	/* Test if last argument is an option or a possible valid filename */
- 	if(argv[(argc-1)][0] == 0x2D) {
--		printf("\nERROR: Found no file for input\n");
--		printf("Please make sure that the last argument is a valid dBASE file\n");
-+		fprintf(stderr, "\nERROR: Found no file for input\n"
-+		    "Please make sure that the last argument is a valid dBASE file\n");
- 		exit(1);
- 	} else 	filename = argv[(argc-1)]; 
-@@ -255,13 +255,15 @@
- 	for(i=1; i < argc; i++) {	     
- 		if(strcmp(argv[i],"--csv")==0) {
--			  if((i+2) < argc) {
--		    	export_filename = argv[i+1];
--                type = CSV_OUTPUT;
--               } else {
--		     	printf("Usage: %s --csv export_filename dbf-file, -h for help\n", *argv);
--		     	exit(1);
--		   	   }
-+			if((i+2) < argc) {
-+				export_filename = argv[i+1];
-+				type = CSV_OUTPUT;
-+			} else {
-+				fprintf(stderr,
-+				    "Usage: %s --csv export_filename dbf-file, -h for help\n",
-+				    *argv);
-+				exit(1);
-+			}
- 		}
--	}	
-+	}
- 
-     /* --sql: sql export */
-@@ -272,5 +274,5 @@
-                 type = SQL_OUTPUT;
-             } else {
--                printf("Usage: %s --sql export_filename dbf-file, -h for help\n", *argv);
-+                fprintf(stderr, "Usage: %s --sql export_filename dbf-file, -h for help\n", *argv);
-                 exit(1);
-             } 
-@@ -289,11 +291,11 @@
- 				getHeaderValues(dbfhandle,filename,header_length);
- 				dbf_field_stat(header,header_length);
--				exit(1);				
-+				dbf_close(dbfhandle, filename);
-+				exit(0);
- 			} else {
--				printf("Cannot open file %s\n", argv[(argc-1)]);
--				printf("Usage: %s file --view-info\n", argv[0]);
-+				fprintf(stderr, "Cannot open file %s\n"
-+				    "Usage: %s file --view-info\n",  argv[(argc-1)], argv[0]);
- 				exit(1);
- 			}
--			dbf_close(dbfhandle, filename);
- 		}
- 	}
-@@ -304,9 +306,10 @@
- 		dbf_read_header(dbfhandle, filename);		
- 		header_length = rotate2b(db->header_length) / 32;
-+		record_length = rotate2b(db->record_length);
- 		getHeaderValues(dbfhandle,filename,header_length);							
- 		lseek(dbfhandle, rotate2b(db->header_length) + 1, 0);
- 		
--		if((foo = (char *)malloc(rotate2b(db->record_length))) == NULL)	{
--			printf("Fatal error: Cannot malloc.\n"); exit(1);
-+		if ((foo = malloc(record_length + 1)) == NULL)	{
-+			perror("malloc"); exit(1);
- 		}
- 		
-@@ -319,39 +322,43 @@
- 			    writeSQLHeader(handle,header,dbf,header_length,filename,export_filename);
- 		    	break;
--            default:
-+		    default:
- 			    writeCSVHeader(handle,header,dbf,header_length); // added dbf, must be tested                           
- 		        break;
--          }                                               
-+		  }
- 		}
- 		
- 		/* foo, p inherits full data set */
--		while ((read(dbfhandle, (p = foo), rotate2b(db->record_length))))
-+		while ((i = read(dbfhandle, (p = foo), record_length)))
- 		{
-+			if (i == -1) {
-+				perror("reading the next block");
-+				exit(1);
-+			}
-+			p[record_length] = '\0'; /* So the converters know, where to stop */
- 			/* automatic convert options */
--		  	cp850convert(p);					
-+		  	cp850convert(p);
- 		  	ASCIInumbers(p);
- 			/* If export_filename is not set output data to screen, otherwise to export_filename */
--		  	if(!export_filename) {
--		    	for (i=1; i < header_length; i++)
--				{
--			  		dbf = header[i];										
--			  		k = dbf->field_length;
--	                printf("%11.11s: ", dbf->field_name);
--			  		while (k--)
--			     		putchar(*p++);
--			  		putchar('\n');
-+			switch (type) {
-+			case SCREEN_OUTPUT:
-+				for (i=1; i < header_length; i++) {
-+					dbf = header[i];
-+					printf("%11.11s: %.*s\n", dbf->field_name,
-+			     		    dbf->field_length, p);
-+					p += dbf->field_length;
- 				}
--				putchar('\n');
--		  	} else {
--		      	switch(type) {
--              	case SQL_OUTPUT:
--					writeSQLLine(handle,header,dbf,p,header_length,filename,export_filename);
--					break;
--		      	default:
--					writeCSVLine(handle,p,header,dbf,header_length); //dbf and header added, must be tested
--					break;
--				}	
--		  	} /* End of --> inner if */		  
-+				break;
-+			case SQL_OUTPUT:
-+				writeSQLLine(handle, header, dbf, p, header_length,
-+				    filename, export_filename);
-+				break;
-+			case CSV_OUTPUT:
-+				writeCSVLine(handle, p, header, dbf, header_length);
-+				break;
-+			default:
-+				assert(!"Unknown output type?");
-+			} /* End of switch */
- 		} /* End of --> while */
-+		free(foo);
- 	} /* End of --> if dbfhandle */
- 	if (filename) dbf_close(dbfhandle,filename);
---- dbf.h	Thu May  8 14:53:15 2003
-+++ dbf.h	Wed Aug 20 16:09:31 2003
-@@ -16,25 +16,16 @@
- #include <string.h>
- #include <limits.h>
--#ifdef __unix__	
--	#include <sys/stat.h>
--    #define NEWLINE_LENGTH 2
--	#include <unistd.h>
--#elif __MSDOS__
--	#include <io.h>
--	#include <sys\stat.h>
--#elif _WIN32
--	#include <io.h>
--	#include <sys\stat.h>
--    #define NEWLINE_LENGTH 2
--#else    
--    #define NEWLINE_LENGTH 1
--#endif
-+
- /*#define VERSION1 0
- #define VERSION2 5
- #define VERSION3 0
- #define VERSION4 1*/
--#define SQL_OUTPUT 1
--#define CSV_OUTPUT 2
--#define INFO_OUTPUT 3
-+enum OUTPUT {
-+	SCREEN_OUTPUT,
-+	SQL_OUTPUT,
-+	CSV_OUTPUT,
-+	INFO_OUTPUT
-+};
-+
- /*#define DBF_VERSION 0x07
- #define DBF_MEMO3 0x80
---- iodbf.c	Thu May  8 14:53:15 2003
-+++ iodbf.c	Wed Aug 20 16:25:13 2003
-@@ -18,5 +18,6 @@
-  * open the the current dbf file
-  * dbfhandle is defined as a global variable */
--int dbf_open (char *file)
-+int
-+dbf_open(const char *file)
- {
- 	int dbfhandle;
-@@ -32,21 +33,25 @@
-  * close the current open dbf file
-  * incl. error handling routines */
--int dbf_close (int fh, char *file)
-+int
-+dbf_close(int fh, const char *file)
- {
--	if((close(fh)) == -1)
--		printf("Cannot close %s.\n", file);
--	else
--		printf("File %s was closed successfully.\n", file);
--	
--	return 1;
-+	if((close(fh)) == -1) {
-+		fputs("Can not close ", stderr);
-+		perror(file);
-+		return 1;
-+	}
-+
-+	fprintf(stderr, "File %s was closed successfully.\n", file);
-+	return 0;
- }
- 
- /* * * * EXPORT_OPEN 
-  * open the export file for writing */
--int export_open (char *file)
-+int
-+export_open(const char *file)
- {
- 	int handle;
- 	if((handle = open(file, O_RDWR|O_CREAT,0644|O_TRUNC)) == -1) {
--		printf("Cannot create/open file %s.\n", file);
-+		perror(file);
- 		exit(1);		
- 	}
-@@ -56,10 +61,13 @@
- /* * * * EXPORT_CLOSE 
-  * closes the opened file and stops the write-process */
--int export_close (int fh, char *file)
-+int
-+export_close(int fh, const char *file)
- {
--	if((close(fh)) == -1)
--		printf("Cannot close File %s.\n",file);
--	else
--		printf("Export file %s was closed successfully.\n",file);
--	return 1;		
-+	if((close(fh)) == -1) {
-+		fputs("Cannot close File ", stderr);
-+		perror(file);
-+		return 1;
-+	}
-+	printf("Export file %s was closed successfully.\n",file);
-+	return 0;		
- }
---- iodbf.h	Thu May  8 14:53:15 2003
-+++ iodbf.h	Wed Aug 20 16:25:38 2003
-@@ -34,8 +34,8 @@
- #endif	
- 
--int dbf_open (char *file);
--int dbf_close (int fh, char *file);
--int export_open (char *file);
--int export_close (int fh, char *file);
-+int dbf_open (const char *file);
-+int dbf_close (int fh, const char *file);
-+int export_open (const char *file);
-+int export_close (int fh, const char *file);
- 
- #endif
---- sql.c	Sat May 24 14:38:46 2003
-+++ sql.c	Wed Aug 20 15:58:35 2003
-@@ -24,32 +24,35 @@
- /* writeSQLHeader */
- /* creates the SQL Header with the information provided by DB_FIELD */
--int writeSQLHeader (int handle,struct DB_FIELD *header[], struct DB_FIELD *dbf, int header_length,char *filename,char *export_filename)
-+int writeSQLHeader (int handle, struct DB_FIELD * const header[],
-+    const struct DB_FIELD *dbf, int header_length,
-+    const char *filename, const char *export_filename)
- {
- 	int unsigned i,l1,l2;
--	char *q;
--	char buffer[65536], table[32],lg[12];	
-+	FILE *fp;
-+	size_t tablelen;
- 
--	strncpy(table,export_filename,strlen(export_filename)-4);
--	memset(buffer, 0, 65535);
--	q = buffer;
--	strcat(q,"-- ");	
--	strcat(q,export_filename);	
--	strcat(q," -- \n--\n-- SQL code with the contents of dbf file ");
--	strcat(q,filename);
--	strcat(q,"\n\ndrop table ");
--	strcat(q,table);
--	strcat(q,";\n\nCREATE TABLE ");
--	strcat(q,table);
--	strcat(q,"(\n");
-+	fp = fdopen(handle, "w");
-+	if (!fp) {
-+		perror("writeSQLHeader");
-+		exit(1);
-+	}
-+	tablelen = strlen(export_filename) - 4;
-+
-+	fprintf(fp, "-- %s -- \n--\n"
-+	    "-- SQL code with the contents of dbf file %s\n\n"
-+	    "\ndrop table %.*s\n"
-+	    "\nCREATE TABLE %.*s\n",
-+	    export_filename, filename,
-+	    tablelen, export_filename,
-+	    tablelen, export_filename);
-  	for(i=1; i < (unsigned int)header_length; i++) {
- 		dbf = header[i];
--		strcat(q,dbf->field_name);
--		strcat(q,"\t");
-+		fprintf(fp, "%s\t", dbf->field_name);
- 		switch(dbf->field_type) {
- 			case 'C':
--				strcat(q,"character varying(");
--				sprintf(lg,"%d",dbf->field_length);
--				strcat(q,lg);
--				strcat(q,")");
-+			case 'M':
-+				fprintf(fp, "character varying(%d)",
-+				    dbf->field_type == 'M' ? 10 :
-+					dbf->field_length);
- 				field_type[i] = IS_STRING;
- 			break;
-@@ -58,26 +61,23 @@
- 				l2 = dbf->field_decimals;
- 				if((l1 < 10) && (l2 == 0))
--					strcat(q, "int");
-+					fputs("int", fp);
- 				else
--					sprintf(lg,"numeric(%d, %d)",l1,l2);
--					strcat(q, lg);
-+					fprintf(fp, "numeric(%d, %d)",
-+					    l1, l2);
- 				field_type[i] = IS_NUMERIC;
- 			break;
--			case 'M':
--				strcat(q, "character varying(10)");
--				field_type[i] = IS_STRING;
--			break;
-+			case 'D':
-+				fputs("date", fp);
-+				break;
- 			default:
--			break;
-+				fprintf(fp, "/* unsupported type ``%c'' */",
-+				    dbf->field_type);
- 		} 								
- 		if(i < header_length - 1)
--			strcat(q,",");
--		strcat(q,"\n");
--	}
--	strcat(q,");\n");
--printf("Writing %s\n", buffer);
-- 	if((write(handle, buffer, strlen(buffer))) == -1) {
--		printf("Cannot write data to SQL File - Aborting!\n"); exit(1);
-+			fputc(',', fp);
-+		fputs("\n", fp);
- 	}
-+	fputs(");\n", fp);
-+	fflush(fp);
- 
- 	return 0;
-@@ -86,51 +86,55 @@
- /* writeSQLLine */
- /* fills the SQL table */
--int writeSQLLine (int handle,struct DB_FIELD *header[], struct DB_FIELD *dbf,char *value, int header_length,char *filename, char *export_filename) {
--	char *p, *q;
--	int i, x;
--	char buffer[65536];
--	char NewString[65536];
--	char table[32];	
-+int
-+writeSQLLine (int handle, struct DB_FIELD * const header[],
-+    const struct DB_FIELD *dbf, const unsigned char *value, int header_length,
-+    const char *filename, const char *export_filename)
-+{
-+	const unsigned char *p;
-+	unsigned char *q;
-+	FILE *fp;
-+	int i;
-+	size_t tablelen;
- 	
--	strncpy(table,export_filename,strlen(export_filename)-4);
-+	fp = fdopen(handle, "w");
-+	if (!fp) {
-+		perror("writeSQLLine");
-+		exit(1);
-+	}
-+	tablelen = strlen(export_filename) - 4;
- 
- 	p = value;
-+	q = NULL;
- 
--	memset(buffer, 0, 65535);
--	q = buffer;
--	strcat(q,"INSERT INTO ");
--	strcat(q,table);
--	strcat(q," VALUES(\n");
--	if((write(handle, buffer, strlen(buffer))) == -1) {
--		printf("Cannot write data to SQL File - Aborting!\n"); exit(1);
--	}
-+	fprintf(fp, "INSERT INTO %.*s VALUES(\n",
-+	    tablelen, export_filename);
-+	
- 	for (i=1; i < (unsigned int)header_length; i++)
- 	{
--		memset(buffer, 0, 65535);
--		memset(NewString, 0, 65535);
-+		unsigned char *end;
- 		dbf = header[i];
--		q = buffer;
--		x = dbf->field_length;
-+
-+		q = realloc(q, dbf->field_length);
-+		
- 		if(field_type[i] == IS_STRING)
--			*q++ = '\'';
--		while(x--){
--			*q++ = *p++;
--		}
--		trim_spaces(NewString, buffer);
--		if((field_type[i] == IS_NUMERIC) && (strlen(NewString) == 0))
--			strcat(NewString,"0");
-+			fputc('\'', fp);
-+
-+		end = trim_spaces(q, p, dbf->field_length);
-+		p += dbf->field_length;
-+
-+		fprintf(fp, "%.*s", end - q, q);
-+
-+		if((field_type[i] == IS_NUMERIC) && end == q)
-+			fputc('0', fp);
- 		if(field_type[i] == IS_STRING)
--			strcat(NewString,"\'");
-+			fputc('\'', fp);
- 		if(i < header_length - 1)
--			strcat(NewString,",");
-- 		if((write(handle, NewString, strlen(NewString))) == -1) {
--			printf("Cannot write data to SQL File - Aborting!\n");
--			exit(1);
--		}
--	}
--	sprintf(buffer,");\n");
--	if((write(handle, buffer, strlen(buffer))) == -1) {
--		printf("Cannot write data to SQL File - Aborting!\n"); exit(1);
-+			fputc(',', fp);
- 	}
--	return 0;				
-+	if (q)
-+		free(q);
-+	fputs(");\n", fp);
-+	fflush(fp);
-+
-+	return 0;
- }
---- sql.h	Thu May  8 14:53:15 2003
-+++ sql.h	Wed Aug 20 15:58:35 2003
-@@ -42,7 +42,7 @@
- 
- int field_type[MAX_FIELDS];
--int writeSQLHeader (int handle,struct DB_FIELD *header[], struct DB_FIELD *dbf, int header_length,char *filename,char
-+int writeSQLHeader (int handle,struct DB_FIELD * const header[], const struct DB_FIELD *dbf, int header_length, const char *filename, const char
- *export_filename);
--int writeSQLLine (int handle,struct DB_FIELD *header[], struct DB_FIELD *dbf,char *value, int header_length,char *filename, char *export_filename);
-+int writeSQLLine (int handle,struct DB_FIELD * const header[], const struct DB_FIELD *dbf, const unsigned char *value, int header_length, const char *filename,  const char *export_filename);
- 
- #endif
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list