about summary refs log tree commit diff
path: root/db
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-08-29 00:31:18 +0000
committerUlrich Drepper <drepper@redhat.com>1996-08-29 00:31:18 +0000
commit14bab8de31e04b990c2ce83d844f634ec57a6cc6 (patch)
treef6a25bd165f8997c08e58f6f2de69e9d34e0fda0 /db
parentb236e99d90748f6caf77994e96dc5aaa48ce2993 (diff)
downloadglibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.tar.gz
glibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.tar.xz
glibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.zip
update from main archive 960828 glibc-1.93 cvs/libc-960829 cvs/libc-1-93
Thu Aug 29 00:28:08 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/printf_fp.c (__printf_fp): Use default value `.` if
 	`decimal' char is 0.

	* C-numeric.c (not_available): New constant.
	(_nl_C_LC_NUMERIC): Use `not_available' for grouping value.

	* nss/nsswitch.conf: Example configuration file.
	* nss/db-Makefile: Example Makefile for generation of databases
	for nss_db.
	* nss/Makefile (distribute): Add nsswitch.conf and db-Makefile.

1996-08-28  Paul Eggert  <eggert@twinsun.com>

	* C-messages.c (_nl_C_LC_MESSAGES): Set yesexpr to "^[yY]" and
 	noexpr to "^[nN]"; this conforms to POSIX.2.

	* C-time.c (_nl_C_LC_TIME): Change %d to %e in d_t_format, to
 	conform to POSIX.2.

1996-08-28  Paul Eggert  <eggert@twinsun.com>

	* C-monetary.c (not_available): New constant.
	(_nl_C_LC_MONETARY): Set mon_decimal_point to "", and set
 	mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
 	p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
 	n_sign_posn to CHAR_MAX, as required by the POSIX Standard.

Wed Aug 28 23:12:28 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_db/db-XXX.c: Correct function names.  They must be
	`_nss_db_*' instead of `_nss_files_*'.
	(lookup): `parse_line' returns 1 if succesful.
	* nss/nss_files/files-service.c (servbyname): Key for database
	must also contain protocol names.
	(servbypt): Likewise.
	Test must also check for protocol.  Add `proto' argument.

Tue Aug 27 09:56:13 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS ($P/subdirs.pot): Prefix all file names, not only the
	first one.

Fri Aug 16 16:11:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Treat
 	EPFNOSUPPORT and EAFNOSUPPORT as implying NSS_STATUS_UNAVAIL just
 	like ECONNREFUSED already does.
	(_nss_dns_gethostbyaddr_r): Likewise.
	* nss/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Likewise.
	(_nss_dns_getnetbyaddr_r): Likewise.

	* sysdeps/mach/hurd/socket.c (socket): For message transmission
 	and RPC errors that indicate that the socket server is not really
 	present and able to do its job, turn the error into EPFNOSUPPORT.

	* sysdeps/generic/sbrk.c (__sbrk):  Get kernel brk address
	always only if in static libc or if statically linked program
	uses libc.so.
Diffstat (limited to 'db')
-rw-r--r--db/Makefile5
-rw-r--r--db/makedb.c28
2 files changed, 27 insertions, 6 deletions
diff --git a/db/Makefile b/db/Makefile
index 2c678dfaa6..e5a60557dc 100644
--- a/db/Makefile
+++ b/db/Makefile
@@ -25,6 +25,9 @@ distribute	:= compat.h					\
 		   hash/extern.h hash/hash.h hash/page.h	\
 		   recno/extern.h recno/recno.h
 
+others		:= makedb
+install-bin	:= makedb
+
 include ../Rules
 
 CPPFLAGS += -D__DBINTERFACE_PRIVATE
@@ -35,3 +38,5 @@ CFLAGS-hash_func.c := -Wno-unused
 
 # The db code outsmarts the compiler frequently.
 override CFLAGS += -Wno-uninitialized
+
+$(objpfx)makedb: -ldb
diff --git a/db/makedb.c b/db/makedb.c
index b1ed982275..a215f25e59 100644
--- a/db/makedb.c
+++ b/db/makedb.c
@@ -39,15 +39,16 @@ static const struct option long_options[] =
   { "help", no_argument, NULL, 'h' },
   { "fold-case", no_argument, NULL, 'f' },
   { "output", required_argument, NULL, 'o' },
+  { "quiet", no_argument, NULL, 'q' },
   { "undo", no_argument, NULL, 'u' },
   { "version", no_argument, NULL, 'V' },
-  { NULL, }
+  { NULL, 0, NULL, 0}
 };
 
 /* Prototypes for local functions.  */
 static void usage __P ((int status)) __attribute__ ((noreturn));
 static int process_input __P ((FILE *input, const char *inname, DB *output,
-			       int to_lowercase));
+			       int to_lowercase, int be_quiet));
 static int print_database __P ((DB *db));
 
 
@@ -64,6 +65,7 @@ main (argc, argv)
   int do_version;
   int to_lowercase;
   int do_undo;
+  int be_quiet;
   int status;
   int opt;
 
@@ -78,6 +80,7 @@ main (argc, argv)
   do_version = 0;
   to_lowercase = 0;
   do_undo = 0;
+  be_quiet = 0;
   output_name = NULL;
 
   while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != EOF)
@@ -94,6 +97,9 @@ main (argc, argv)
       case 'o':
         output_name = optarg;
         break;
+      case 'q':
+	be_quiet = 1;
+	break;
       case 'u':
 	do_undo = 1;
 	break;
@@ -170,7 +176,8 @@ main (argc, argv)
     error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"));
 
   /* Start the real work.  */
-  status = process_input (input_file, input_name, db_file, to_lowercase);
+  status = process_input (input_file, input_name, db_file, to_lowercase,
+			  be_quiet);
 
   /* Close files.  */
   if (input_file != stdin)
@@ -197,6 +204,7 @@ Mandatory arguments to long options are mandatory for short options too.\n\
   -f, --fold-case     convert key to lower case\n\
   -h, --help          display this help and exit\n\
   -o, --output=NAME   write output to file NAME\n\
+      --quiet         don't print messages while building database\n\
   -u, --undo          print content of database file, one entry a line\n\
   -V, --version       output version information and exit\n\
 If INPUT-FILE is -, input is read from standard input.\n"),
@@ -208,11 +216,12 @@ If INPUT-FILE is -, input is read from standard input.\n"),
 
 
 static int
-process_input (input, inname, output, to_lowercase)
+process_input (input, inname, output, to_lowercase, be_quiet)
      FILE *input;
      const char *inname;
      DB *output;
      int to_lowercase;
+     int be_quiet;
 {
   char *line;
   size_t linelen;
@@ -278,11 +287,18 @@ process_input (input, inname, output, to_lowercase)
       if (status != 0)
 	{
 	  if (status == 1)
-	    error_at_line (0, 0, inname, linenr, gettext ("duplicate key"));
+	    {
+	      if (!be_quiet)
+		error_at_line (0, 0, inname, linenr,
+			       gettext ("duplicate key"));
+	      /* This is no real error.  Just give a warning.  */
+	      status = 0;
+	    }
 	  else
 	    error (0, errno, gettext ("while writing data base file"));
 
-	  status = EXIT_FAILURE;
+	  status = status ? EXIT_FAILURE : EXIT_SUCCESS;
+
 	  clearerr (input);
 	  break;
 	}