Initial revision
authorK. Richard Pixley <rich@cygnus>
Mon, 25 Mar 1991 22:25:03 +0000 (22:25 +0000)
committerK. Richard Pixley <rich@cygnus>
Mon, 25 Mar 1991 22:25:03 +0000 (22:25 +0000)
include/gdbm.h [new file with mode: 0644]
include/getopt.h [new file with mode: 0644]

diff --git a/include/gdbm.h b/include/gdbm.h
new file mode 100644 (file)
index 0000000..b27f8e7
--- /dev/null
@@ -0,0 +1,91 @@
+/* gdbm.h  -  The include file for dbm users.  */
+
+/*  GNU DBM  - DataBase Manager (database subroutines) by Philip A. Nelson
+    Copyright (C) 1989  Free Software Foundation, Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+    You may contact the author by:
+       e-mail:  phil@wwu.edu
+      us-mail:  Philip A. Nelson
+                Computer Science Department
+                Western Washington University
+                Bellingham, WA 98226
+        phone:  (206) 676-3035
+       
+*************************************************************************/
+
+/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
+   can create the database. */
+#define  GDBM_READER  0
+#define  GDBM_WRITER  1
+#define  GDBM_WRCREAT 2
+#define  GDBM_NEWDB   3
+
+/* Parameters to gdbm_store for simple insertion or replacement. */
+#define  GDBM_INSERT  0
+#define  GDBM_REPLACE 1
+
+
+/* The data and key structure.  This structure is defined for compatibility. */
+typedef struct {
+       char *dptr;
+       int   dsize;
+      } datum;
+
+
+/* The file information header. This is good enough for most applications. */
+typedef struct {int dummy[10];} *GDBM_FILE;
+
+
+/* These are the routines! */
+
+extern GDBM_FILE gdbm_open ();
+
+extern void     gdbm_close ();
+
+extern datum    gdbm_fetch ();
+
+extern int      gdbm_store ();
+
+extern int      gdbm_delete ();
+
+extern datum    gdbm_firstkey ();
+
+extern datum    gdbm_nextkey ();
+
+extern int      gdbm_reorganize ();
+
+
+/* gdbm sends back the following error codes in the variable gdbm_errno. */
+typedef enum { NO_ERROR,
+               MALLOC_ERROR,
+               BLOCK_SIZE_ERROR,
+               FILE_OPEN_ERROR,
+               FILE_WRITE_ERROR,
+               FILE_SEEK_ERROR,
+               FILE_READ_ERROR,
+               BAD_MAGIC_NUMBER,
+               EMPTY_DATABASE,
+               CANT_BE_READER,
+               CANT_BE_WRITER,
+               READER_CANT_RECOVER,
+               READER_CANT_DELETE,
+               READER_CANT_STORE,
+               READER_CANT_REORGANIZE,
+               UNKNOWN_UPDATE,
+               ITEM_NOT_FOUND,
+               REORGANIZE_FAILED,
+               CANNOT_REPLACE}
+       gdbm_error;
diff --git a/include/getopt.h b/include/getopt.h
new file mode 100644 (file)
index 0000000..1e5db6c
--- /dev/null
@@ -0,0 +1,76 @@
+/* declarations for getopt
+   Copyright (C) 1989 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* For communication from `getopt' to the caller.
+   When `getopt' finds an option that takes an argument,
+   the argument value is returned here.
+   Also, when `ordering' is RETURN_IN_ORDER,
+   each non-option ARGV-element is returned here.  */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+   This is used for communication to and from the caller
+   and for communication between successive calls to `getopt'.
+
+   On entry to `getopt', zero means this is the first call; initialize.
+
+   When `getopt' returns EOF, this is the index of the first of the
+   non-option elements that the caller should itself scan.
+
+   Otherwise, `optind' communicates from one call to the next
+   how much of ARGV has been scanned so far.  */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message `getopt' prints
+   for unrecognized options.  */
+
+extern int opterr;
+
+/* Describe the long-named options requested by the application.
+   _GETOPT_LONG_OPTIONS is a vector of `struct option' terminated by an
+   element containing a name which is zero.
+   The field `has_arg' is:
+   0 if the option does not take an argument,
+   1 if the option requires an argument,
+   2 if the option takes an optional argument.
+   If the field `flag' is nonzero, it points to a variable that is set to
+   the value given in the field `val' when the option is found, but
+   left unchanged if the option is not found.  */
+
+struct option
+{
+  char *name;
+  int has_arg;
+  int *flag;
+  int val;
+};
+
+extern struct option *_getopt_long_options;
+
+/* Name of long-named option actually found.
+   Only changed when a long-named option is found.  */
+
+extern char *_getopt_option_name;
+
+/* The index in GETOPT_LONG_OPTIONS of the long-named option found.
+   Only valid when a long-named option has been found by the most
+   recent call to `getopt'.  */
+
+extern int option_index;
+