about summary refs log tree commit diff
path: root/db2/progs/db_dump/db_dump.c
diff options
context:
space:
mode:
Diffstat (limited to 'db2/progs/db_dump/db_dump.c')
-rw-r--r--db2/progs/db_dump/db_dump.c79
1 files changed, 16 insertions, 63 deletions
diff --git a/db2/progs/db_dump/db_dump.c b/db2/progs/db_dump/db_dump.c
index c09719059b..f532bc2779 100644
--- a/db2/progs/db_dump/db_dump.c
+++ b/db2/progs/db_dump/db_dump.c
@@ -1,7 +1,7 @@
 /*-
  * See the file LICENSE for redistribution information.
  *
- * Copyright (c) 1996, 1997
+ * Copyright (c) 1996, 1997, 1998
  *	Sleepycat Software.  All rights reserved.
  */
 
@@ -9,9 +9,9 @@
 
 #ifndef lint
 static const char copyright[] =
-"@(#) Copyright (c) 1997\n\
+"@(#) Copyright (c) 1996, 1997, 1998\n\
 	Sleepycat Software Inc.  All rights reserved.\n";
-static const char sccsid[] = "@(#)db_dump.c	10.16 (Sleepycat) 8/27/97";
+static const char sccsid[] = "@(#)db_dump.c	10.19 (Sleepycat) 5/23/98";
 #endif
 
 #ifndef NO_SYSTEM_INCLUDES
@@ -35,8 +35,6 @@ static const char sccsid[] = "@(#)db_dump.c	10.16 (Sleepycat) 8/27/97";
 
 void	configure __P((char *));
 DB_ENV *db_init __P((char *));
-void	dbt_dump __P((DBT *));
-void	dbt_print __P((DBT *));
 int	main __P((int, char *[]));
 void	pheader __P((DB *, int));
 void	usage __P((void));
@@ -55,11 +53,11 @@ main(argc, argv)
 	DBC *dbcp;
 	DBT key, data;
 	DB_ENV *dbenv;
-	int ch, dflag, pflag;
+	int ch, checkprint, dflag;
 	char *home;
 
 	home = NULL;
-	dflag = pflag = 0;
+	checkprint = dflag = 0;
 	while ((ch = getopt(argc, argv, "df:h:p")) != EOF)
 		switch (ch) {
 		case 'd':
@@ -73,7 +71,7 @@ main(argc, argv)
 			home = optarg;
 			break;
 		case 'p':
-			pflag = 1;
+			checkprint = 1;
 			break;
 		case '?':
 		default:
@@ -89,7 +87,7 @@ main(argc, argv)
 		if (home != NULL)
 			errx(1,
 			    "the -d and -h options may not both be specified");
-		if (pflag)
+		if (checkprint)
 			errx(1,
 			    "the -d and -p options may not both be specified");
 	}
@@ -116,23 +114,19 @@ main(argc, argv)
 	}
 
 	/* Print out the header. */
-	pheader(dbp, pflag);
+	pheader(dbp, checkprint);
 
 	/* Print out the key/data pairs. */
 	memset(&key, 0, sizeof(key));
 	memset(&data, 0, sizeof(data));
-	if (pflag)
-		while ((errno = dbcp->c_get(dbcp, &key, &data, DB_NEXT)) == 0) {
-			if (dbp->type != DB_RECNO)
-				dbt_print(&key);
-			dbt_print(&data);
-		}
-	else
-		while ((errno = dbcp->c_get(dbcp, &key, &data, DB_NEXT)) == 0) {
-			if (dbp->type != DB_RECNO)
-				dbt_dump(&key);
-			dbt_dump(&data);
-		}
+	while ((errno = dbcp->c_get(dbcp, &key, &data, DB_NEXT)) == 0) {
+		if (dbp->type != DB_RECNO &&
+		    (errno = __db_prdbt(&key, checkprint, stdout)) != 0)
+			break;
+		if ((errno = __db_prdbt(&data, checkprint, stdout)) != 0)
+			break;
+	}
+
 	if (errno != DB_NOTFOUND)
 		err(1, "cursor get");
 
@@ -229,47 +223,6 @@ pheader(dbp, pflag)
 	printf("HEADER=END\n");
 }
 
-static char hex[] = "0123456789abcdef";
-
-/*
- * dbt_dump --
- *	Write out a key or data item using byte values.
- */
-void
-dbt_dump(dbtp)
-	DBT *dbtp;
-{
-	u_int32_t len;
-	u_int8_t *p;
-
-	for (len = dbtp->size, p = dbtp->data; len--; ++p)
-		(void)printf("%c%c",
-		    hex[(u_int8_t)(*p & 0xf0) >> 4], hex[*p & 0x0f]);
-	printf("\n");
-}
-
-/*
- * dbt_print --
- *	Write out a key or data item using printable characters.
- */
-void
-dbt_print(dbtp)
-	DBT *dbtp;
-{
-	u_int32_t len;
-	u_int8_t *p;
-
-	for (len = dbtp->size, p = dbtp->data; len--; ++p)
-		if (isprint(*p)) {
-			if (*p == '\\')
-				(void)printf("\\");
-			(void)printf("%c", *p);
-		} else
-			(void)printf("\\%c%c",
-			    hex[(u_int8_t)(*p & 0xf0) >> 4], hex[*p & 0x0f]);
-	printf("\n");
-}
-
 /*
  * usage --
  *	Display the usage message.