diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 1841 |
1 files changed, 1841 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..d3a838f --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1841 @@ +2013-12-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Version 1.11 + +2013-12-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor changes. + + * src/gdbm_load.c: New options: --mmap, --cache-size and + --block-size. + + * doc/gdbm.texinfo: Document new gdbm_load options. + * doc/gdbm_load.1: Likewise. + + * src/gdbmdelete.c: Stylistic changes. + * src/gdbmstore.c: Likewise. + +2013-05-21 Sergey Poznyakoff <gray@gnu.org.ua> + + New function gdbm_count. + + * configure.ac: Check for unsigned long long, define + substitution variable GDBM_COUNT_T. + * src/gdbmcount.c: New file. + * src/Makefile.am (libgdbm_la_SOURCES): Add gdbmcount.c. + * src/bucket.c (_gdbm_read_bucket_at): New function. + * src/gdbm.h.in (gdbm_count_t): New typedef. + (gdbm_count): New proto. + * src/gdbmdefs.h (GDBM_DIR_COUNT): New define. + * src/proto.h (_gdbm_read_bucket_at): New proto. + * src/var.c: New variable "filemode". + + * src/gdbmtool.c: Use gdbm_count. Various bugfixes. + + * NEWS: Update. + * doc/gdbm.texinfo: Update. + +2013-05-17 Sergey Poznyakoff <gray@gnu.org.ua> + + Update the docs. + + * NEWS: Update. + * doc/gdbm.texinfo: Update. + * doc/gdbmtool.1: Document the "define" statement. + * src/datconv.c: Rename string datatypes to reflect their + meaning. + (dsprint): Improve output presentation. + +2013-05-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Provide support for a simplified "define" construct. + + * doc/gdbm.texinfo: Document the "define" statement. + * src/datconv.c: Support short and ushort data types. + * src/gdbmtool.c: Don't call checkdb prior to handling + the "hash" command. + * src/gram.y: Support simplified definition construct: + "define key|content type". + +2013-05-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve handling of the variables. + + * src/gdbmtool.c (opendb): Allow for unset variables. + * src/gram.y: Improve error detection. + * src/lex.l: Handle multiline strings. + (pe_file_name): file_name can be NULL. + * src/var.c (VARF_PROT): New flag. Protects the variable + from being unset. + (vartab): Use VARF_PROT if needed. + (s2b): Fix return values. + (variable_set, variable_unset): Return error if attempting + to unset a variable marked with VARF_PROT. + + * doc/gdbm.info: Update. + * doc/gdbmtool.1: Update. + +2013-05-15 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor change + + * src/gdbmtool.c (command_tab): Change variable names + in docstrings to uppercase. + +2013-05-15 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement the "quiet" variable. + + * src/var.c (vartab) <quiet>: New variable. + (variable_is_true): Return 0 if the value cannot be + retrieved. + * src/gdbmtool.c (optab): New option --file (-f). + (main): Handle the --file option. + Retrieve the "quiet" setting from the variable. + * src/lex.l (context_pop): Clear both point.file + and yylloc. + +2013-05-15 Sergey Poznyakoff <gray@gnu.org.ua> + + Add "pager" variable and "unset" command. + + * src/gdbmtool.c (command_tab) <unset>: New command. + (run_command): Get pager value from the variable. + * src/gdbmtool.h (VAR_ERR_NOTSET): New error code. + (variable_is_true): New function. Replaces variable_is_set, + which changed semantics. + * src/gram.y: Implement the unset command. + * src/var.c: Support the "unset variable" notion. + (VARF_INIT): New flag. + (VAR_IS_SET): New define. + (vartab): Mark initialized variables with VARF_INIT. + New variable "pager". + (open_hook): v can be NULL. + (variable_set): NULL value unsets the variable. + (variable_unset): New function. + (variable_get): Return VAR_ERR_NOTSET if the variable is + not set. + (variable_is_true): Renamed from variable_is_set. + (variable_is_set): New function. + + * src/gdbmdefs.h: Fix some typos. + +2013-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Change variable handling. + + * src/util.c: New file. + * src/Makefile.am: Add new files. + * src/gdbmtool.c (open_mode): New variable. + (terror): Remove. + (mkfilename, tildexpand): Move to util.c + (opendb): Use open_mode. + (import_handler): Likewise. + (optab): New option -N (--norc). + + * src/gdbmtool.h (vparse_error): Rename to vlerror. + (parse_error): Rename to lerror. + (syntax_error): Rename tp terror. + All uses updated. + (VAR_ERR_FAILURE): Remove. + (VAR_ERR_BADVALUE): New error code. + (variable_mode_name): Remove. + (mkfilename, tildexpand) + (vgetyn, getyn): New protos. + * src/lex.l (initialized): New static. + (setsource): Set initialized. + (vlerror): Print locus only if the lexer has been + initialized. + * src/var.c: Rewrite. + +2013-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Provide "open" and "close" commands; implement new variables. + + * src/datconv.c (datum_format): Don't print field delimiter + after the last field. + (dsprint): Bugfix. + * src/gdbmload.c (gdbm_load_from_file): Return GDBM_NO_DBNAME + when loading from bdb dump and the database pointer is NULL. + * src/gdbmtool.c (opendb, checkdb): New auxiliary functions. + (begin handlers): call checkdb. + (import_handler): Special handling for GDBM_NO_DBNAME. + (status_handler): Print more info. + (command_tab): Call checkdb prior to handlers that expect an + open database. + New commands: open, close + (gdbmarg_string, gdbmarg_datum) + (gdbmarg_kvpair): Take pointer to locus as the 2nd argument. + All uses changed. + (coerce): Include locus info in the diagnostic message. + (main): Don't open database right away. + * src/gdbmtool.h (GDBMTOOL_DEFFILE): New define. + (gdbmarg) <loc>: New member. + (VART_INT): New variable typ.e + (VAR_ERR_FAILURE): New error code. + (variable_is_set, varible_mode_name): New protos. + * src/gram.y: Provide printable token names for error messages. + Pass locus to gdbmarg initialization functions. + * src/lex.l (vparse_error): Fix output. + * src/var.c (variable) <v.num, hook, hook_data>: New members. + (vartab): Define more variables. + (variable_set): Accept value of any valid datatype. + (variable_mode_name, variable_is_set): New functions. + +2013-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Cleanup. + + * src/datconv.c (s_float): Use strtod. + (datum_scan_notag, datum_scan_tag): Made static. + (dsprint): New function. + * src/gdbmtool.c (status_handler): Print key and + content definitions. + (slist_new): Bugfix (missing return statement). + * src/gdbmtool.h: Add new prototypes. + * src/lex.l: Remove unused variables, set option + nounput. + +2013-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement rc files and "source" command; improve lexical analyzer. + + * src/gdbmtool.c (interactive): Move to lex.l; + (mkfilename, tildexpand): New functions. + (command_tab) <source>: New command. + (main): Source rc file, if present. + * src/gdbmtool.h (setsource): Change return type + and signature. + * src/lex.l: Implement context stack. + Change DEF to be an exclusive state. + + * src/gdbmapp.h (estrdup): Argument is const. + * src/mem.c: Likewise. + +2013-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Add support for Berkeley dump format version 3 (read-only). + + * src/gdbmapp.h: Include gettext.h and locale.h. + * src/gdbmload.c: Support for Berkeley dump format, + version 3. + +2013-05-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove the "read" command. Use "import" instead. + +2013-05-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Add "set" and "define" to the main command table. + + * src/gdbmtool.c: Include gram.h + (command) <tok>: New member. + (command_tab): List "define" and "set". + (find_command): Rewrite as command_lookup, with different + return type and signature. + (run_command): Take struct command * as its first argument. + * src/gdbmtool.h (command_lookup): New proto. + (run_command): Change signature. + (datadef_locate): Rename to datadef_lookup. All uses changed. + * src/gram.y: Update. + * src/lex.l: Change handling of IDENT rules. + +2013-05-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement shell variables in gdbmtool. + + * src/var.c: New file. + * src/Makefile.am: Add var.c + * src/datconv.c (datum_format): Remove the "delim" + parameter, use "delim1" and "delim2" shell variables + instead. + * src/gdbmtool.c: Remove "prompt" command. Use "set ps[12]" + instead. + (print_prompt): Move to lex.l + * src/gdbmtool.h (variable_set) + (variable_get, variable_print_all): New protos. + * src/gram.y: Handle the "set" command. + * src/lex.l: Update. + +2013-05-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Handle structured key and content data in gdbmtool. + + * src/datconv.c: New file. + * src/Makefile.am (gdbmtool_SOURCES): Add datconv.c. + * src/gdbmtool.h (slist, kvpair): New structures. + (gdbmarg): Keep various types of data depending on the + value of the type member. + (slist_new, slist_free) + (kvpair_string, kvpair_list): New protos. + (gdbmarg_new): Remove. + (gdbmarg_string, gdbmarg_datum) + (gdbmarg_kvpair, gdbmarg_free) + (gdbmarg_destroy): New protos. + (xd_expand, xd_store, datadef_locate): New protos. + (field, dsegm): New structs. + (dsegm_new, dsegm_new_field, dsegm_free_list): New protos. + * src/gdbmtool.c: Rewrite. + * src/gram.y: Change grammar to allow for defining key and + content structure and for supplying structured data as arguments + to fetch, store and similar functions. + * src/lex.l: Handle new token types. + + * tests/dtload.c (main): Fix parser. + * tests/gtload.c: Likewise. + +2013-05-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Rewrite gdbmtool parser. + + * src/testgdbm.c: Remove. + * src/gdbmtool.c: New file. + * src/gdbmtool.h: New file. + * src/gram.y: New file. + * src/lex.l: New file. + * src/Makefile.am: Update. + +2013-05-09 Sergey Poznyakoff <gray@gnu.org.ua> + + Add new prompt escapes. + + * src/testgdbm.c: New prompt escapes: %p, %P, %v, %_. + Change default prompt to %p>%_. + * doc/gdbmtool.1: Document new prompt escapes. + +2013-05-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Rename testgdbm to gdbmtool. Improve documentation. + + * configure.ac: Fix a typo. + * src/.cvsignore: Add gdbmtool + * src/Makefile.am: Rename testgdbm to gdbmtool. Source + file not renamed because of CVS deficiency. + * src/gdbm_dump.c: Enable NLS. + * src/gdbm_load.c: Likewise. + * src/testgdbm.c: New option -q (--quiet). + New command: prompt. + * doc/Makefile.am (man_MANS): Add new manpages. + * doc/gdbmtool.1: New file. + * doc/gdbm_load.1: New file. + * doc/gdbm_dump.1: New file. + * doc/gdbm.3: Update. + * doc/gdbm.texinfo: Update. + +2013-05-08 Sergey Poznyakoff <gray@gnu.org.ua> + + * configure.ac: (AC_INIT): Add webpage URL. + +2013-05-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve testgdbm; install some more bugfixes. + + * src/gdbmdefs.h: Fix typo in a comment. + * src/gdbmdump.c (gdbm_dump_to_file): Improve error + checking. + * src/testgdbm.c: Improve interactive usage. + (command) <minlen>: Rename to len. + (command_tab): Initialize len. + (set_minimal_abbreviations): Remove. + (sort_commands): New function. + (find_command): Print possible alternatives in case of + ambiguous input. + (main): Reset param.argc after freeing previous arguments. + Continue silently if find_command returns NULL. + +2013-05-07 Sergey Poznyakoff <gray@gnu.org.ua> + + Bugfix. + + * src/gdbmreorg.c: Call _gdbm_mapped_init when the database + structure is fully initialized (Puszcza bug #171). + +2013-05-07 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor change + + * configure.ac: Require autoconf 2.69 or newer (in response + to Puszcza bug #171). + +2012-03-21 Sergey Poznyakoff <gray@gnu.org.ua> + + * tests/create00.at: Use cmp -s || diff -u instead of plain + diff, because the latter produces extra output on some systems + (notably Solaris). + * tests/dbmcreate00.at: Likewise. + * THANKS: Add Bill Jones + +2011-11-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve testgdbm + + * src/mem.c (ealloc_die): Return EXIT_FATAL to the shell. + * src/testgdbm.c: Use emalloc, erealloc and estrdup for memory + allocation. + (syntax_error): New function. + (handler_param): New struct. + (all handlers): Change signature. Take a pointer to struct + handler_param as argument. + (export_handler,import_handler): Handle new formats. + (main): Take first argument to be the file name. + (optab): Remove -f argument. Hide -g, but retain it for + backward compatibility. + + * doc/gdbm.texinfo: Update. + +2011-11-15 Sergey Poznyakoff <gray@gnu.org.ua> + + Version 1.10.90 + + Update the docs. Improve dump/load utilities. + + * doc/gdbm.texinfo: Reorganize the material. Document gdbm_load + and gdbm_dump utilities. + * src/gdbm.h.in (GDBM_META_MASK_MODE) + (GDBM_META_MASK_OWNER): New constant. + (gdbm_load,gdbm_load_from_file): Take an additional argument: + meta_flags, which masks out restoring certain meta-data. + * src/gdbm_dump.c: Remove -b option. The -H option takes symbolic + format names. Use the standard exit codes. + * src/gdbm_load.c: New options: --mode, --user and --no-meta. + Use the standard exit codes. + * src/gdbmapp.h (EXIT_OK, EXIT_FATAL, EXIT_MILD) + (EXIT_USAGE): New constants. + * src/gdbmload.c (gdbm_load,gdbm_load_from_file): Take an + additional argument, which masks out restoring certain meta-data. + +2011-11-15 Sergey Poznyakoff <gray@gnu.org.ua> + + Return a meaningful error code if failed to restore file's metadata. + + * src/gdbm.h.in (GDBM_ERR_FILE_OWNER) + (GDBM_ERR_FILE_MODE): New error codes. + (_GDBM_MAX_ERRNO): Update. + * src/gdbmerrno.c (gdbm_errlist): Add new error codes. + * src/gdbmload.c (_set_gdbm_meta_info): Set gdbm_errno and + return 1 in case of errors. + (_gdbm_load_file): Propagate the return value from + _set_gdbm_meta_info. + + * src/gdbm_load.c (main): Handle mild error conditions. + * export/export.c (usage): Print the GDBM version the program is + linked with. + * doc/gdbm.texinfo: Document changes. + +2011-11-14 Sergey Poznyakoff <gray@gnu.org.ua> + + * doc/gdbm.texinfo (Error codes): Document new flat format and + related functions. + * po/POTFILES.in: Update + +2011-11-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement new dump format. Add new utilities: gdbm_dump and gdbm_load. + + * configure.ac (AC_CHECK_HEADERS): Don't check for files that must + always be present. Check for getopt.h. + (AC_CHECK_FUNCS): Add getopt_long + * src/systems.h: Include useless #if's. + + * src/flatfile.c: Split into two files: + * src/gdbmexp.c: ... this and ... + * src/gdbmimp.c: .., this + + * src/mem.c: New file. + * src/base64.c: New file. + * src/gdbm_dump.c: New file. + * src/gdbm_load.c: New file. + * src/gdbmapp.h: New file. + * src/gdbmdump.c: New file. + * src/gdbmload.c: New file. + * src/parseopt.c: New file. + * src/progname.c: New file. + * src/.cvsignore: Update. + * src/Makefile.am (libgdbm_la_SOURCES): Add new files. + (noinst_LIBRARIES): New variable. Build libgdbmapp.a. + (libgdbmapp_a_SOURCES): New variable. + (bin_PROGRAMS): Add gdbm_load and gdbm_dump + (testgdbm_LDADD, gdbm_load_LDADD) + (gdbm_dump_LDADD): Add ./libgdbmapp.a + + * src/gdbm.h.in: Include <stdio.h> + (gdbm_export_to_file) + (gdbm_import_from_file): New prototypes. + (GDBM_DUMP_FMT_BINARY,GDBM_DUMP_FMT_ASCII): New constants. + (gdbm_dump,gdbm_load) + (gdbm_dump_to_file,gdbm_load_from_file): New prototypes. + (GDBM_NO_DBNAME): New error code. + (_GDBM_MAX_ERRNO): Update. + * src/gdbmdefs.h (_GDBM_MAX_DUMP_LINE_LEN): New constant. + * src/gdbmerrno.c (gdbm_errlist): Add entry for GDBM_NO_DBNAME. + * src/proto.h (_gdbm_base64_encode,_gdbm_base64_decode) + (_gdbm_load,_gdbm_dump): New prototypes. + + * src/testgdbm.c: Use gdbmapp interface for option parsing. + + * export/export.c: Include gdbmexp.c + * export/.cvsignore: Update. + * doc/gdbm.texinfo: Update. + +2011-11-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Version 1.10 + + * NEWS: Raise version number. + * configure.ac: Raise version number. + +2011-11-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement cloexec in gdbm_reorganize. Add test cases. + + * compat/dbmopen.c: Apply O_CLOEXEC to newly created dir + file, if requested. + + * src/gdbmdefs.h (gdbm_file_info) <cloexec>: New member. + * src/gdbmopen.c (gdbm_open): Initialize cloexec member. + * src/gdbmreorg.c (gdbm_reorganize): Propagate cloexec bit + to the new database. + + * tests/.cvsignore: Update. + * tests/cloexec00.at: New test case. + * tests/cloexec01.at: Likewise. + * tests/cloexec02.at: Likewise. + * tests/cloexec03.at: Likewise. + * fdop.c: New auxiliary program. + * g_open_ce: New test program. + * g_reorg_ce: New test program. + * d_creat_ce: New test program. + * tests/Makefile.am: Add new test cases and test programs. + * tests/testsuite.at: Include new test cases. + * doc/gdbm.texinfo: Minor change. + +2011-11-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Use SEEK_SET instead of L_SET in all sources. + +2011-11-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Support close-on-exec flag for gdbm_open call. + + * src/gdbm.h.in (GDBM_CLOEXEC): New flag. + * src/systems.h [O_CLOEXEC]: Provide a placeholder definition. + + * src/gdbmopen.c (gdbm_open): Honor the GDBM_CLOEXEC flag. + * compat/dbmopen.c (ndbm_open_dir_file0): Mask out open mode + before comparing with GDBM_READER. + Support GDBM_CLOEXEC. + (dbm_open): Translate O_CLOEXEC to GDBM_CLOEXEC. + + * doc/gdbm.texinfo: Document GDBM_CLOEXEC. + + * NEWS: Update. + +2011-11-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix handling of NDBM databases in read-only mode. + + * compat/dbmopen.c (ndbm_open_dir_file0): Open dir file in + read-only mode if the database is being opened as GDBM_READER. + * tests/dbmcvt.at: New file. + * tests/dbmfetch02.at: New file. + * tests/dbmfetch03.at: New file. + * tests/Makefile.am (TESTSUITE_AT): Add new files. + * tests/testsuite.at: Include new testcases. + +2011-10-05 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix bug #150. + + Tolerate I/O operations returning less bytes than expected. Retry I/O + if possible. + + * src/fullio.c: New file. + * src/Makefile.am (libgdbm_la_SOURCES): Add fullio.c + * src/proto.h (_gdbm_full_read) + (_gdbm_full_write): New protos. + * src/gdbmerrno.c (gdbm_errlist): Add entry for GDBM_FILE_EOF. + + * src/bucket.c: Use _gdbm_full_{read|write}. + * src/falloc.c: Likewise. + * src/findkey.c: Likewise. + * src/gdbmopen.c: Likewise. + * src/gdbmstore.c: Likewise. + * src/testgdbm.c: Likewise. + * src/update.c: Likewise. + +2011-10-05 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/gdbmopen.c (gdbm_open): Initialize memory used for file + header. This fixes bug #151. + +2011-08-24 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement multi-character commands in testgdbm. + + * bootstrap (get_po): Discard output from cmp. + * src/testgdbm.c: Implement multi-character commands. + * doc/gdbm.texinfo: Update. + +2011-08-18 Sergey Poznyakoff <gray@gnu.org.ua> + + * bootstrap: Get PO files; create LINGUAS list + * po/.cvsignore: Add LINGUAS. + +2011-08-17 Sergey Poznyakoff <gray@gnu.org.ua> + + Make sure errno is preserved, if it can contain details about the + gdbm error. + + * src/gdbmdefs.h (SAVE_ERRNO): New macro. + * src/gdbmopen.c: Use SAVE_ERRNO where it is important to + preserve system errno. + * src/mmap.c: Likewise. + + * doc/gdbm.texinfo: Document which gdbm errors can + be detailed by inspecting the system errno. + +2011-08-17 Sergey Poznyakoff <gray@gnu.org.ua> + + Introduce new error code. + + * configure.ac, NEWS: Raise patchlevel to 90. + * src/gdbm.h.in: Enclose entire file in conditional + extern "C". + (GDBM_FILE_STAT_ERROR): New error code. + (_GDBM_MAX_ERRNO): Update. + * src/gdbmerrno.c (gdbm_errlist): Update. + * src/gdbmopen.c: Set GDBM_FILE_STAT_ERROR on fstat + failure. + * src/gdbmreorg.c: Likewise. + * src/mmap.c: Likewise. + * src/systems.h: Include errno.h + * gdbm.texinfo: Document GDBM_FILE_STAT_ERROR. + +2011-08-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor housekeeping for Gnits compliance. + + * README-alpha: New file. + * README-hacking: New file. + * bootstrap: Update. + +2011-08-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Internationalization. + + * Makefile.am (SUBDIRS): Add po. + (EXTRA_DIST): Add build-aux/config.rpath. + * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. + * bootstrap: New file. + * src/Makefile.am (AM_CPPFLAGS): Define LOCALEDIR + (noinst_HEADERS): Add gettext.h + (LIBADD): New variable. + * src/gettext.h: New file. + * po/.cvsignore: New file. + * po/Makevars: New file. + * po/POTFILES.in: New file. + * src/gdbmdefs.h: Define DEFAULT_TEXT_DOMAIN, _, N_ + Include gettext.h + * src/bucket.c: Add NLS markers. + * src/falloc.c: Likewise. + * src/findkey.c: Likewise. + * src/gdbmerrno.c: Likewise. + * src/gdbmfetch.c: Likewise. + * src/gdbmseq.c: Likewise. + * src/gdbmstore.c: Likewise. + * src/update.c: Likewise. + * src/testgdbm.c: Add NLS markers. + (main): Initialize I18N. + +2011-08-14 Sergey Poznyakoff <gray@gnu.org.ua> + + * compat/Makefile.am (libgdbm_compat_la_LIBADD): Link against + libgdbm. Suggested by Adam Sampson. + +2011-08-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve release checking: use gnits. + + * configure.ac (AM_INIT_AUTOMAKE): Use gnits. + (AC_INIT): Remove extra quoting from around version number + to pacify gnits. + * THANKS: New file. + +2011-08-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Verify preprocessor directives. Pass them through cppi to + reflect their nesting level. Affected files: + + * src/flatfile.c + * src/gdbmconst.h + * src/gdbm.h.in + * src/gdbmconst.h + * src/gdbmopen.c + * src/gdbmreorg.c + * src/lock.c + * src/mmap.c + * src/systems.h + * src/testgdbm.c + +2011-08-13 Sergey Poznyakoff <gray@gnu.org.ua> + + * NEWS, configure.ac: Version 1.9.1 + +2011-08-12 Sergey Poznyakoff <gray@gnu.org.ua> + + Bugfixes (pointed out by Matthew Burgess + <matthew@linuxfromscratch.org>). + + * src/gdbmopen.c: Fix a typo. + * tests/Makefile.am ($(srcdir)/package.m4): Fix improper + dependency. + +2011-08-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Release 1.9 + +2011-08-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Add testcases for gdbm_setopt. + + * tests/gtopt.c: New file + * tests/.cvsignore: Update. + * tests/setopt00.at: New testcase. + * tests/setopt01.at: New testcase. + * tests/Makefile.am: Build gtopt. Add setopt00.at and setopt01.at. + * tests/testsuite.at: Include setopt00.at and setopt01.at. + +2011-08-11 Sergey Poznyakoff <gray@gnu.org.ua> + + New option GDBM_GETDBNAME. + + * src/gdbm.h.in (GDBM_GETDBNAME): New option. + * src/gdbmsetopt.c (gdbm_setopt): Handle GDBM_GETDBNAME. + * doc/gdbm.texinfo (Options): Document GDBM_GETDBNAME. + +2011-08-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve gdbm_setopt interface. + + * src/gdbm.h.in (GDBM_OPENMASK): New constant. + * src/gdbmconst.h: Remove constants duplicated in + gdbm.h.in. + * src/gdbmdefs.h (gdbm_file_info) <allow_mmap> + <mmap_inited>: Replace with a single member: memory_mapping. + All callers updated. + (GDBM_SETCACHESIZE,GDBM_SETSYNCMODE) + (GDBM_SETCENTFREE,GDBM_SETCOALESCEBLKS): New option names. + (GDBM_SETMMAP,GDBM_GETMMAP,GDBM_GETFLAGS) + (GDBM_GETCACHESIZE,GDBM_GETSYNCMODE,GDBM_GETCENTFREE) + (GDBM_GETCOALESCEBLKS,GDBM_GETMAXMAPSIZE): New option codes. + * src/gdbmsetopt.c: Implement new options. + * doc/gdbm.texinfo: Document new options. + +2011-08-11 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve memory mapping support. + + The new code is more flexible and performs better when + lots of inserts are being made (e.g. when populating the + database with new data). + + * src/gdbm.h.in (GDBM_SETMAXMAPSIZE): New constant. + * src/gdbmconst.h (SIZE_T_MAX): New define. + * src/gdbmdefs.h (gdbm_file_info) <cache_size>: Change type + to size_t. + <mmap_inited,mapped_size_max>: New member. + <mapped_remap>: Remove. + * src/gdbmopen.c: Fix a typo. + (gdbm_open): Initialize new members. + (_gdbm_init_cache): Second argument is size_t. + * src/gdbmsetopt.c (gdbm_setopt): Optval argument is void*. + Handle GDBM_SETMAXMAPSIZE. + Improve error checking. + * src/mmap.c (_GDBM_IN_MAPPED_REGION_P): Fix comparison with + the lower bound. + (_GDBM_NEED_REMAP): Return true if mapped_region is NULL. + (SUM_FILE_SIZE): Rewrite. + (_gdbm_mapped_unmap): Don't call msync. + (_gdbm_internal_remap): Take 2 arguments, the second one + giving the new mapped size. + Unmap the region prior to remapping it. + Always pass NULL as the argument to mmap. + (_gdbm_mapped_remap): Rewrite the logic. Change semantics of the + third argument. All uses updated. + (_gdbm_mapped_init): Reflect the above changes. + (_gdbm_mapped_read,_gdbm_mapped_write): Use mmap_inited to decide + whether to use mmap, because mapped_region can be reset to zero + by another functions (namely, _gdbm_mapped_lseek). + Reset mmap_inited to FALSE, if _gdbm_mapped_remap fails. + (_gdbm_mapped_lseek): Rewrite offset computations. Invalidate + the mapped region. + * src/proto.h (_gdbm_init_cache): Change prototype. + * src/update.c (write_header, _gdbm_end_update): Remove checks + for dbf->mapped_region. + * tests/gtload.c: Implement the -maxmap option (set maximal + mapped memory size). + + * doc/gdbm.texinfo: Document GDBM_SETMAXMAPSIZE. + +2011-08-09 Sergey Poznyakoff <gray@gnu.org.ua> + + Update the docs. + + * doc/gdbm.texinfo: Document compatibility functions, + provide more cross-references. + +2011-08-09 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement dbm_error and dbm_clearerr. + + * compat/ndbm.h (__gdbm_error_to_ndbm): New macro + (dbm_error,dbm_clearerr): Provide prototypes instead of + the macros. + (DBM) <_dbm_errno>: New member. + * compat/dbmerr.c: New file. + * compat/Makefile.am (NDBM_CF): Add dbmerr.c + * compat/dbmdelete.c: Make sure _dbm_errno reflects the + actual error state. + * compat/dbmfetch.c: Likewise. + * compat/dbmseq.c: Likewise. + * compat/dbmstore.c: Likewise. + +2011-08-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Provide test group descriptors in the testsuite. + + * tests/atlocal.in (XFAILFILE): Remove. + * tests/version.at: Don't create XFAILFILE. + * tests/testsuite.at: Add test group banners + * tests/dbmcreate00.at (AT_SETUP): Change description. + * tests/dbmdel00.at: Likewise. + * tests/dbmdel01.at: Likewise. + * tests/dbmdel02.at: Likewise. + * tests/dbmfetch00.at: Likewise. + * tests/dbmfetch01.at: Likewise. + +2011-08-07 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/testgdbm.c: Change internal command invocation + mechanism: the begin handler (if provided) initializes + the invocation and computes the expected number of + output lines. If it is greater than the screen size + the pager is enabled. End handler (if supplied) cleans + up after the invocation. + + Always use error() for diagnostics. + +2011-08-06 Sergey Poznyakoff <gray@gnu.org.ua> + + * doc/Config: New file. + * doc/gendocs_template: Rewrite for the new site layout. + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. + Force the use of --enable-libgdbm-compat on distcheck stage. + + * compat/ndbm.h (DBM) <dirfd>: New member. + * src/version.c (gdbm_version_cmp): New function. + * compat/dbmclose.c (dbm_close): Close dirfd. + * compat/dbmdirfno.c (dbm_dirfno): Return dirfd. + * compat/dbmopen.c (dbm_open): Instead of linking + pag to dir, create a separate dir file with the version + information in it. When opening an existing db in + write mode, detect if it has pag linked to dir. If so, + break the link and recreate the dir file in new format. + This allows GDBM to cooperate with the applications which + lock both pag and dir files. + * doc/gdbm.texinfo: Document gdbm_version_cmp. + * NEWS: Update. + +2011-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + * configure.ac: Require latest autotools. Enable silent mode. + * NEWS: Convert to the standard GNU outline format. Add entry + for 1.9. + +2011-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + * configure.ac: Require latest autotools. Enable silent mode. + * NEWS: Convert to the standard GNU outline format. Add entry + for 1.9. + +2011-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + * tests/version.at: Update. + * tests/Makefile.am: Define AT_PACKAGE_VERSION_MAJOR, + AT_PACKAGE_VERSION_MINOR, and AT_PACKAGE_VERSION_PATCH. + * src/lock.c: Shut the gcc warning. + * doc/gdbm.texinfo: Minor fixes. + * src/testgdbm.c (error): Bugfix. + +2011-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/global.c: Remove. + * src/extern.h: Remove. + * src/Makefile.am: Remove extern.h and global.c + * src/flatfile.c: Don't include extern.h + * src/gdbmreorg.c: Likewise. + * src/lock.c: Likewise. + * src/testgdbm.c: Likewise. + * src/gdbmerrno.c (gdbm_errno): New declaration (from + global.c) + + + * compat/dbm-priv.h: New file. + * compat/dbm.h: New file. + * compat/ndbm.h: New file. + * compat/Makefile.am (include_HEADERS): Add dbm.h and ndbm.h + (noinst_HEADERS): Add dbm-priv.h + * compat/close.c: Rewrite using ndbm interface. + * compat/dbminit.c: Likewise. + * compat/delete.c: Likewise. + * compat/fetch.c: Likewise. + * compat/seq.c: Likewise. + * compat/store.c: Likewise. + + * compat/dbmclose.c: Include nbdm.h. + Use the new DBM declaration. + * compat/dbmdelete.c: Likewise. + * compat/dbmdirfno.c: Likewise. + * compat/dbmfetch.c: Likewise. + * compat/dbmopen.c: Likewise. + * compat/dbmpagfno.c: Likewise. + * compat/dbmrdonly.c: Likewise. + * compat/dbmseq.c: Likewise. + * compat/dbmstore.c: Likewise. + + * tests/Makefile.am: Add new files. + * tests/atlocal.in: Conditionally define COMPAT. + + * tests/create00.at: Update keywords. + * tests/delete00.at: Likewise. + * tests/delete01.at: Likewise. + * tests/delete02.at: Likewise. + * tests/fetch00.at: Likewise. + * tests/fetch01.at: Likewise. + + * tests/gtdel.c: Include progname.h instead of declaring + canonical_progname. + * tests/gtdump.c: Likewise. + * tests/gtfetch.c: Likewise. + * tests/gtload.c: Likewise. + * tests/gtver.c: Likewise. + + * tests/testsuite.at (AT_COMPAT_PREREQ): New macro. + Add compat test cases. + + * tests/dtload.c: New file. + * tests/dtdump.c: New file. + * tests/dtdel.c: New file. + * tests/dbmcreate00.at: New test case. + * tests/dbmfetch00: Likewise. + * tests/dbmfetch01: Likewise. + * tests/dbmdel00.at: Likewise. + * tests/dbmdel01.at: Likewise. + * tests/dbmdel02.at: Likewise. + +2011-08-04 Sergey Poznyakoff <gray@gnu.org.ua> + + * README: Update. + * doc/gdbm.3: Update. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * tests/gtver.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add gtver. + * tests/.cvsignore: Update. + * tests/version.at: Use gtver instead of testgdbm. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/gdbm.proto: Remove. + * src/gdbm.proto2: Remove. + * src/gdbmerrno.h: Remove. + * src/gdbm.h.in: New file. + * Makefile.am (dist-hook): Remove destination file before + copying over it. + * configure.ac: Define Major,Minor numbers and Patchlevel + separately. + (GDBM_VERSION_MAJOR,GDBM_VERSION_MINOR) + (GDBM_VERSION_PATCH): New substitution variables. + * src/Makefile.am: Remove rules for building gdbm.h. + It is now created by configure. + (noinst_HEADERS): Install gdbm.h + (EXTRA_DIST): Distribute gdbm.h.in. + + * src/flatfile.c: Include arpa/inet.h and gdbm.h. + * src/gdbmerrno.c: Include gdbm.h. + * src/version.c: Include gdbm.h. + (gdbm_version_number): New global variable. + + * doc/gdbm.texinfo: Document gdbm_version_number and + GDBM_VERSION_* macros. + + * src/gdbmopen.c: Remove unused variables, fix format specs. + * src/testgdbm.c: Remove unused variables, fix format specs. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * Makefile.am (dist-hook): Replace /*@DIST_DATE@*/ with + the actual distribution date. + * src/version.c (gdbm_version): Update automatically. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * (all files): Update copyright headers. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * doc/Makefile.am (check-fixmes): New rule. + * doc/gdbm.texinfo: Document flat format and related + functions. + + * src/flatfile.c: Minor changes. + * src/gdbmerrno.c (gdbm_errlist): Indicate the size of + array and document its entries to minimize the possibility + of errors when editing it. + * src/gdbmerrno.h (gdbm_errlist): New prototype. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/gdbmdefs.h (struct gdbm_file_info) <name>: Remove + the static qualifier. + +2011-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/gdbm.proto2: Remove a leftover __P wrapper. + * src/gdbmsetopt.c (gdbm_setopt): Avoid coredumps on NULL + optval. + + * doc/.cvsignore: Update. + * doc/Makefile.am: Rewrite. + * doc/gdbm.texinfo: Revise. + * doc/gendocs_template: New file. + * doc/untabify.el: New file. + +2011-08-02 Sergey Poznyakoff <gray@gnu.org.ua> + + * tests/.cvsignore: Update. + * tests/Makefile.am: Add new tests. + * tests/testsuite.at: Likewise. + * tests/gtdump.c: Minor fix. + * tests/gtfetch.c: Likewise. + * tests/delete00.at: New file. + * tests/delete01.at: New file. + * tests/delete02.at: New file. + * tests/gtdel.c: New file. + + * Makefile.am (SUBDIRS): Add tests. + * configure.ac: Initialize testsuite. + * src/testgdbm.c: Minor fixes. + * tests/Makefile.am: New file. + * tests/atlocal.in: New file. + * tests/create00.at: New file. + * tests/fetch00.at: New file. + * tests/fetch01.at: New file. + * tests/gtdump.c: New file. + * tests/gtfetch.c: New file. + * tests/gtload.c: New file. + * tests/num2word.c: New file. + * tests/testsuite.at: New file. + + * tests/version.at: New file. + + * .cvsignore: Update. + * compat/.cvsignore: Update. + * doc/.cvsignore: Update. + * export/.cvsignore: Update. + * src/.cvsignore: Update. + +2011-08-01 Sergey Poznyakoff <gray@gnu.org.ua> + + * compat/dbminit.c: Remove useless include. + * compat/dbmopen.c: Likewise. + +2011-08-01 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/testgdbm.c (main): Support --help and --version for + the sake of make distcheck. + +2011-08-01 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/gdbm.proto: Remove the legacy __P stuff. + +2011-08-01 Sergey Poznyakoff <gray@gnu.org.ua> + + * Makefile.am (ACLOCAL_AMFLAGS): New variable. + * configure.ac: Use AM_INIT_AUTOMAKE with arguments. + + * src/gdbm.proto (GDBM_FILE): Change typedef. + * src/gdbmdefs.h: Include gdbm.h + (datum): Remove duplicate declaration. + (gdbm_file_info): Change to struct gdbm_file_info + + * src/proto.h: Use GDBM_FILE instead of gdbm_file_info *. + Remove duplicate declarations. + + * src/gdbmopen.c: Use GDBM_FILE instead of gdbm_file_info *. + (gdbm_open): Fix signature to match global declaration. + + * compat/dbmclose.c: Use GDBM_FILE instead of gdbm_file_info *. + * compat/dbmdirfno.c: Likewise. + * compat/dbmfetch.c: Likewise. + * compat/dbmopen.c: Likewise. + * compat/dbmpagfno.c: Likewise. + * compat/dbmrdonly.c: Likewise. + * compat/dbmseq.c: Likewise. + * compat/dbmstore.c: Likewise. + * src/bucket.c: Likewise. + * src/extern.h: Likewise. + * src/falloc.c: Likewise. + * src/findkey.c: Likewise. + * src/flatfile.c: Likewise. + * src/gdbmclose.c: Likewise. + * src/gdbmdelete.c: Likewise. + * src/gdbmexists.c: Likewise. + * src/gdbmfdesc.c: Likewise. + * src/gdbmfetch.c: Likewise. + * src/gdbmreorg.c: Likewise. + * src/gdbmseq.c: Likewise. + * src/gdbmsetopt.c: Likewise. + * src/gdbmstore.c: Likewise. + * src/gdbmsync.c: Likewise. + * src/global.c: Likewise. + * src/lock.c: Likewise. + * src/mmap.c: Likewise. + * src/testgdbm.c: Likewise. + * src/update.c: Likewise. + +2009-01-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * configure.ac: Update bug-reporting address. + * doc/gdbm.texinfo: Likewise. + * INSTALL, doc/version.texi: Remove automatically generated files. + +Wed Dec 3 19:29:25 PST 2008 Jason Downs (downsj@downsj.com) + + * src/lock.c, src/gdbm.proto, src/proto.h: Disabled/removed + gdbm_locked() for now, it's not needed. + +Sun Nov 30 16:48:29 PST 2008 Jason Downs (downsj@downsj.com) + + * src/lock.c: Check errno to see if a lock failed because it's already + locked. Add external gdbm_locked() routine to return the + status of locking. Move lock type to the dbf. + * src/gdbmdefs.h: Move lock type to the dbf. + * src/gdbm.proto: Add gdbm_export(), gdbm_import(), and gdbm_locked(). + +2008-11-30 Sergey Poznyakoff <gray@gnu.org.ua> + + * src/lock.c: Remove flock/flock64 distinction. + +Sat Nov 29 23:22:24 PST 2008 Jason Downs (downsj@downsj.com) + * configure.ac: Add test for lockf. + + * src/lock.c: New file, adds _gdbm_unlock_file() and + _gdbm_lock_file() routines. These attempt to use flock(), + lockf(), and fcntl() locking. + * src/proto.h: Add new prototypes. + * src/systems.h: Remove file locking macros. + * src/gdbmopen.c: Rewrite locking code, use _gdbm_lock_file(). + * src/gdbmclose.c, src/gdbmreorg.c: Use _gdbm_unlock_file(). + +Sat Nov 29 21:19:32 PST 2008 Jason Downs (downsj@downsj.com) + * configure.ac: Add test for sys/termios.h + + * src/systems.h: Add macros for Solaris-style 64bit fcntl locks. + * src/testgdbm.c: Add support for opening files without locking. + Add support for opening files without mmap. + Add sys/termios.h include and add check for TIOCWINSZ. + + * export/export.c: Add support for opening files without locking. + +Mon Oct 29 15:14:53 EET 2007 Sergey Poznyakoff (gray@gnu.org.ua) + + * configure.ac (AC_INIT): Add bug-reporting email. + * gdbm.texinfo: Use values.texi for version and edition number and + date. + Document testgdbm and gdbmexport. + Remove obsolete chapter describing conv2gdbm. + + * export/export.c: Fix check for argc. + Take name of the output file from the second argument. + Accept -h and -v command line options. + + * src/Makefile.am (noinst_PROGRAMS): move to bin_PROGRAMS. + * src/flatfile.c (gdbm_export): Add missing break. + * src/gdbmreorg.c (gdbm_reorganize): Call _gdbm_mapped_init if + required. + * src/testgdbm.c: Improve usage and version output to comply to + standards.texi. + Allow to operate on non-nul-terminated ascii data: + (key_z, data_z): New variables. + (key_z_handler, data_z_handler, status_handler): New handlers - + commands 'z', 'Z' and 'S' + All functions using key_data and data_data updated accordingly + (read_from_file): 'r' command takes an optional second arg. + (print_cache_handler): Use pager. + (page_data): Ignore pager for non-interactive usage. + +Sun Oct 28 15:50:53 PDT 2007 Jason Downs (downsj@downsj.com) + + * configure.ac: Add options for gdbmexport. + * export/Makefile.am, export/export.c: New files, stand alone flat + file exporter. + * COPYING, all source files: Update to GPLv3. + * src/Makefile.ac, compat/Makefile.ac: Move gdbm_compat to compat dir. + * compat: New directory, populate with [n]dbm files. + * src/Makefile.ac: Remove getopt.h. + * testgdbm.c, conv2gdbm.c: Remove getopt.h. + * configure.ac: Remove getopt. + * getopt.h, getopt.c: Remove. + +Fri Oct 26 07:43:18 PDT 2007 Sergey Poznyakoff (gray@gnu.org.ua) + + * src/Makefile.am (noinst_PROGRAMS): Remove testdbm, testndbm, + and conv2gdbm + * src/gdbmreorg.c (gdbm_reorganize): Call _gdbm_mapped_unmap + * src/testgdbm.c: Redo command handling. Expect arguments to + follow the command, otherwise prompt for them. + +Thu Oct 25 09:36:51 PDT 2007 Sergey Poznyakoff (gray@gnu.org.ua) + + * src, doc: New directories + * *.[ch], gdbm.proto, gdbm.proto2: Move to src + * gdbm.texi, gdbm.3: Move to doc + * configure.in: Rename to configure.ac, switch to deep structure + * build-aux: Auxiliary dir for autoconf stuff + * Makefile.am, src/Makefile.am, doc/Makefile.am: New file + + * src/mmap.c (_gdbm_mapped_remap): Bugfix. + * src/testgdbm.c: New commands '<' - read entries from file and store, + and 'l' - list entire database + +Tue Oct 23 19:19:36 PDT 2007 Jason Downs (downsj@downsj.com) + + * update.c: Force sync if using mmap. + + * gdbmclose.c: Unmap file. + + * gdbmopen.c: Initialize mmap. + + * gdbmdefs.h: Finish adding mmap support. + + * Makefile.in: Add mmap.c. + + * mmap.c: New mmap() i/o routines, from Sergey Poznyakoff + <gray@gnu.org.ua>. + +Thu Oct 18 18:16:26 PDT 2007 + + * gdbmdefs.h: Convert a bunch of flags to bit fields. + + * gdbmconst.h, gdbm.proto, gdbm.proto2: Add GDBM_NOMMAP and clean up. + + * gdbmerrno.c, gdbmerrno.h: New errnos. + + * gdbmconst.h, gdbmdefs.h, gdbmopen.c: Implement new magic number(s). + + * bucket.c, falloc.c, findkey.c, gdbmopen.c, gdbmstore.c, update.c: + lseek() becomes __lseek(). + + * bucket.c, falloc.c, gdbmopen.c, gdbmstore.c, update.c: write() + becomes __write(). + + * bucket.c, falloc.c, findkey.c, gdbmopen.c: read() becomes __read(). + + * gdbmclose.c, gdbmopen.c, gdbmreorg.c, gdbmsync.c, update.c: fsync() + becomes __fsync(). + + * systems.h: New I/O macros. + + * Makefile.in: Library version 4, remove BINOWN/BINGRP. + + * autoconf.h.in, configure: Regenerate. + + * aclocal.m4, config.guess, config.sub, ltmain.sh: Update. + + * systems.h, gdbmfetch.c, gdbmopen.c, gdbmseq.c, gdbmstore.c, + findkey.c: Switch to memcpy() and memcmp(). + + * configure.in: Add mmap() support, sizeof off_t check, remove bcopy. + + * proto.h, gdbmopen.c, update.c: Fatal function now takes a + const char *. + + * All .h and .c files: ANSI function declarations, remove __P macros. + Also minor style fixes. + +Tue Oct 15 15:00:11 PDT 2002 Jason Downs (downsj@downsj.com) + + * samp1.cc: Remove. + + * gdbm.3, gdbm.texinfo: 1.8.3. + + * version.c: Version 1.8.3., modernize string (release date is in + American format). + + * gdbmreorg.c: Remove small memory leak. + + * Makefile.in: Use more subs from configure, remove mention of SunOS. + Add support for spec'ing an install time prefix via INSTALL_ROOT. + + * INSTALL: Remove extra text from top. + + * config.guess, config.sub: Update to latest versions. + + * autoconf.h.in: Regenerate. + + * configure.in: Modernize. + + * systems.h: HAVE_ST_BLKSIZE -> HAVE_STRUCT_STAT_ST_BLKSIZE. + +Fri Sep 27 16:12:44 PDT 2002 Jason Downs (downsj@downsj.com) + + * Makefile.in: Remove `info' target from all, since we don't even + bother installing the one we built anyway. + + * Fix a few checks against dbf.read_write. + +Wed Sep 25 15:19:00 PDT 2002 Jason Downs (downsj@downsj.com) + + * Makefile.in: Remove the dbm and ndbm routines from the main + library, moving them to gdbm_compat. install-compat now + installs the compat headers and the library. Increment the + MAJOR number of the shared library due to the removal of + the compat functions. + + * gdbm.3, gdbm.texinfo, version.c: 1.8.1; note gdbm_compat. + + * proto.h: Change _gdbm_fatal() to void. + + * update.c(_gdbm_fatal): Change function declaration to void. + + * update.c(_gdbm_fatal): Change default exit status to 1. + + * gdbmopen.c(gdbm_open): Remove setting of flags since we always check + it against the mask. + + * testdbm.c, testndbm.c: Added stdlib.h inclusions. + + * falloc.c(push_avail_block): Fixed extremely rare case where the + header avail table could fill up, causing us to over flow the + table, corrupting memory, and eventually crashing. Also forced + merging of blocks within the scope of this routine (possibly + should force them whenever the header avail table is being used). + + * gdbmerrno.c: Fix error count, there are more than 18. + + * gdbmerrno.h: Fix typo; GDBM_OPT_ILLEGAL is 20. + + * gdbmopen.c: Fix typo; s/GDBM_OPENMASK/GDBM_WRITER/. + +Tue May 18 19:25:25 PDT 1999 Jason Downs (downsj@downsj.com) + + * gdbm.3, gdbm.texinfo: Update for 1.8. + + * Makefile.in, configure.in: Switch to using libtool, but without + automake. + + * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh: New + files (libtool 1.2). + +Wed May 12 01:26:15 PDT 1999 Jason Downs (downsj@downsj.com) + + * gdbmopen.c, gdbmclose.c, gdbmreorg.c: check file_locking before + calling locking macros; add support for setting GDBM_NOLOCK in + gdbm_open(). + + * gdbmdefs.h: add file_locking flag to gdbm_file_info. + + * gdbmconst.h, gdbm.proto: add GDBM_NOLOCK flag. + + * gdbmfdesc.c: new file, adds external gdbm_fdesc() routine. + + * gdbm.proto, gdbm.proto2: clean up, use __P, and compress. + + * gdbmerrno.h: kill the enum, add defines for errors. + + * gdbmsetopt.c, testgdbm.c: support GDBM_SYNC/GDBM_SYNCMODE. + + * gdbmopen.c: gdbm_open() now DEFAULTS to ``fast mode''; use + GDBM_SYNC to turn it off. GDBM_FAST is obsolete and ignored. + + * gdbmconst.h: add GDBM_SYNC and GDBM_SYNCMODE. + + * proto.h, various source files: switch _ARGS to __P. + + * systems.h, various source files: kill word_t, just use int + everywhere. + + * configure.in, autoconf.h.in: remove alloca() goo and modernize. + + * many source files: replace all instances of alloca() with real + malloc()s and free()s. + + * update.c: don't deref NULL in _gdbm_fatal(), and don't use stdio. + +[ The following are entries revived from a dead experimental branch. ] + +Tue Nov 1 00:35:11 1994 Jason Downs (downsj@downsj.com) + + * gdbmopen.c (gdbm_open): actually initialize central_free and + coalesce_blocks. + + * gdbmdefs.h: added coalesce_blocks. these should've been bitmapped. + oh well. + + * falloc.c (various routines): made block merging an option. + + * gdbmsetopt.c (gdbm_setopt): added GDBM_COALESCEBLKS option. + + * gdbmconst.h: added GDBM_COALESCEBLKS option. + +Fri Jun 3 09:45:19 1994 Jason Downs (downsj@downsj.com) + + * falloc.c (_gdbm_free): if central_free is set, all blocks are + put into the header. + + * gdbmsetopt.c (gdbm_setopt): add GDBM_CENTFREE case. + + * gdbmdefs.h, gdbmconst.h, gdbm.proto: add central free option. + +Fri Jun 3 05:57:36 1994 Jason Downs (downsj@downsj.com) + + * falloc.c (pop_avail_block): merge block with header, instead + of replace, since header may not be empty any longer. + + * falloc.c (_gdbm_alloc): pop a block off the stack when the + current header is half empty, instead of zero. + +Fri Jun 3 05:11:33 1994 Jason Downs (downsj@downsj.com) + + * gdbmstore.c (gdbm_store): don't alloc new disk if we're replacing + and the records are the same size. suggested by phil a long time + ago. + +Fri Jun 3 03:47:46 1994 Jason Downs (downsj@downsj.com) + + * falloc.c (_gdbm_put_av_elem): allow adjacent blocks to be + merged. inspired by the enhancement by Tim Howes. + +Thu Jun 2 22:15:19 1994 Jason Downs (downsj@downsj.com) + + * Makefile.in: add installation mode, owner, and group. + +Thu Jun 2 04:24:58 1994 Jason Downs (downsj@downsj.com) + + * Makefile.in: run mkinstalldirs before installing files. + + * mkinstalldirs: new file. + +[ End of revived entries. ] + +Thu May 19 15:50:04 1994 Jason Downs (downsj@downsj.com) + + * NEWS, README: update to 1.7.3. + + * gdbm.texinfo: update to 1.7.3, slight fixes. + + * gdbm.3: update to 1.7.3, slight reformat. + +Thu May 19 14:45:51 1994 Jason Downs (downsj@downsj.com) + + * gdbmconst.h: removed the header magic numbers from this + branch. + + * version.c: added an include of autoconf.h, updated version + + * gdbm.proto: added a define for GDBM_FASTMODE. + +Sun May 15 02:39:48 1994 Jason Downs (downsj@downsj.com) + + * gdbm.3, gdbm.texinfo: updates for 1.7.2 + + * README, NEWS, version.c: update for 1.7.2 + + * Makefile.in: removed files, changed (drastically) how the + package compiles and installs. + + * bytewise.c, bytewise.h: removed from this branch. + +Wed Mar 23 00:44:43 1994 Jason Downs (downsj@downsj.com) + + * extern.h: removed bogus (old) function declarations. + +Mon Mar 14 01:37:09 1994 Jason Downs (downsj@downsj.com) + + * Makefile.in: added new files. + + * bytewise.c, bytewise.h: new portable byte order conversion + package; supports 64bit longs/16bit ints. + +Sun Mar 13 22:56:10 1994 Jason Downs (downsj@downsj.com) + + * gdbmsetopt.c, gdbmconst.h: added GDBM_FASTMODE option. + + * falloc.c: taught _gdbm_alloc() about the header avail table. + hopefully, this will fix the bloating problem. i dunno, though, + as i've never had that problem, myself. + +Sun Dec 26 05:17:04 1993 Jason Downs (downsj@downsj.com) + + * version.c: made gdbm_version const. + + * gdbmerrno.c: made gdbm_strerror() and it's array const. + + * various files: general clean up, reformating of code. + + * systems.h: put <memory.h> inside of a conditional. + + * configure.in, autoconf.h.in: added check for <memory.h>. + + * systems.h: added a default define of SEEK_SET. + + * bucket.c, gdbmopen.c, gdbmseq.c, gdbmdelete.c, gdbmdefs.h: + cleaned up some uses of word_t. + +Tue Nov 16 03:11:56 1993 Jason Downs (downsj@downsj.com) + + * gdbm.3, gdbm.texinfo: updated versions to 1.3 for release + + * version.c, README, NEWS: updated versions to 1.7.1 for release + +Sun Nov 14 17:21:03 1993 Jason Downs (downsj@downsj.com) + + * Makefile.in: added $(srcdir) to a few file references. + +Sat Nov 13 13:56:37 1993 Jason Downs (downsj@downsj.com) + + * gdbm.3, gdbm.texinfo: added new gdbm_firstkey()/gdbm_nextkey() + documentation. + + * gdbmopen.c: added SGI alloca patch. + + * Makefile.in: changed installation prefix semantics. + +Sat Nov 13 01:52:31 1993 Jason Downs (downsj@downsj.com) + + * various source: redid the AIX alloca declaration. any new files + that call alloca will have to start with the same header. + + * all source, configure.in, Makefile.in: switched over to using + autoconf.h, rather than packing all of the autoconf defs into + the DEFS line. + + * autoconf.h.in: new file. + + * Makefile.in: changed rule for tndbm.o, hopefully making it more + portable. + + * alloca.c: added inclusion of stdlib.h + +Fri Nov 12 13:11:03 1993 Jason Downs (downsj@downsj.com) + + * Makefile.in, configure.in: fixed getop related bugs. + + * systems.h: moved sys/types.h include to top. + +Wed Nov 3 17:18:59 1993 Jason Downs (downsj@downsj.com) + + * version.c: changed version to 1.7, for release. + + * gdbmdefs.h: Moved all system includes to systems.h. + +Sun Oct 31 02:50:12 1993 Jason Downs (downsj@downsj.com) + + * version.c: changed version number to 1.7alpha. + + * gdbm.texinfo: updated to reflect new routines and changes. + + * getopt.c, getopt.h: Added the GNU getopt.c to the dist, for + compilation of testgdbm and conv2gdbm on machines without getopt(). + + * various source files: changed all appropiate occurances of 'long' + to type 'off_t'. Added off_t check to configure.in. + + * gdbm.3: updated to reflect new routines and changes. + +Sat Oct 30 05:20:45 1993 Jason Downs (downsj@downsj.com) + + * testgdbm.c: Added support for bucket cache and block sizes, + adding -c, -b and -g flags. Must use -g to specify the file + name, now. + + * bucket.c, gdbmopen.c, gdbmclose.c, gdbmreorg.c, update.c, + gdbmconst.h, gdbmdefs.h: Implemented dynamic, delayed + initialization, bucket cache. New routine: _gdbm_init_cache(). + + * proto.h, gdbmerrno.c, gdbmerrno.h: Added gdbm_setopt() errors + and prototypes. + + * gdbmsetopt.c: New file, implements the gdbm_setopt() routine. + + * testgdbm.c, testndbm.c, testdbm.c, conv2gdbm.c: cleaned up + compiler warnings. + + * update.c: repaired declarations and added prototypes for + static routines, repaired declaration of _gdbm_fatal(). + + * falloc.c: repaired declarations and added prototypes for + static routines. + + * gdbmstore.c: commented out unsed variables in gdbm_store(). + + * proto.h: added prototypes for _gdbm_read_entry(), + _gdbm_find_key(), and gdbm_sync(). + + * bucket.c, proto.h: changed _gdbm_get_bucket() and + _gdbm_write_bucket() over to type void. + +Sat Oct 30 00:56:24 1993 Jason Downs (downsj@downsj.com) + + * gdbmerrno.c, gdbmexists.c, close.c, dbmrdonly.c: New files, + adding the routines gdbm_strerror(), gdbm_exists(), and for + better compatibility with the old dbm/ndbm libraries, the + dbmclose() and dbm_rdonly() routines. + + * various headers: Added prototypes for the new routines, and + rearranged how gdbm.h is generated. + +Fri Oct 29 07:02:41 1993 Jason Downs (downsj@downsj.com) + + * README: split into README, INSTALL, and NEWS. INSTALL + includes more tips on compiling. NEWS contains the 'short form' + ChangeLog. + + * Makefile.in, configure.in: Redid parts of the autoconf + stuff, and repaired many bugs. + + * systems.h: Repaired the alloca declarations, among other + things. + + * various source files: changed all relevant usage of type + 'long' to type 'word_t', which will always be 32bits wide. + 'word_t' is defined in systems.h. + +Fri Jul 30 13:27:24 1993 Phil Nelson (phil@cs.wwu.edu) + + * findkey.c: Added a check of elem_loc == -1 in determining if + the data cache held the item being looked for. + +Tue Jul 20 13:08:47 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbm.texinfo: Fixed some errors. + + * Makefile.in: Fixed some errors. + + * version.c: Set version to 1.6 for release. + +Mon Jul 19 15:02:40 1993 Phil Nelson (phil at cs.wwu.edu) + + * COPYING: Replaced Version 1 with Version 2. Also updated + all file notices to refer to version 2. + + * gdbm.texinfo: Updated the documentation. + + * README: Updated to current version. + + * Makefile: updated clean and install. + +Wed Jul 14 13:37:44 1993 Phil Nelson (phil at cs.wwu.edu) + + * Makfile.in: Added samp1.cc to the list of distributed files. + +Sat Jun 5 21:35:59 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbm.proto, Makefile.in: Added #ifndef _GDBM_H_ protection + for the final gdbm.h file. Also added prototypes and C++ + support. + + * gdbmseq.c: Added gdbm_errno initialization to gdbm_nextkey. + + * gdbmerrno.h and others: Moved the extern definition of + gdbm_erron to gdbmerrno.h from the other files. + +Mon May 17 12:32:02 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbm.proto: Added GDBM_FAST to the read_write flags. + +Sun May 16 12:50:01 1993 Phil Nelson (phil at cs.wwu.edu) + + * configure.in, Makefile.in: Added autoconf configuration + to gdbm. + +Tue Mar 30 00:08:48 1993 Phil Nelson (phil at cs.wwu.edu) + + * global.c: Set gdbm_errno to GDBM_NO_ERROR to force + it into the data segment. + +Sun Mar 28 22:51:40 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbmfetch.c: Set return_val.dsize to 0 as a default return + value. (I was told that was more compatible with dbm/ndbm.) + + * gdbmopen.c: Changed a "sizeof(int)" to "sizeof(long)". + + * testgdbm.c: Changed "char opt" to "int opt" to make sure + opt can be -1. + + * hash.c: Added "unsigned" to declaration of value for + better overflow operation. + + * gdbmreorg.c: Added a free for data.dptr in the main loop. + Also changed the malloc for new_name to an alloca. + Removed all frees on new_name. + +Sat Mar 27 23:25:14 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbmconst.h, gdbmdefs.h, gdbmopen.c, gdbmreorg.c, + testgdbm.c, update.c, gdbm.h: Added code to allow for a + GDBM_FAST mode in which fsync is not called during + database update mode. Added a new flag "-f" to + testgdbm to make use of the new fast mode. + + * gdbmsync.c: Added this function to allow a programmer + to use the GDBM_FAST mode but still be able to sync + a database. + + * gdbmopen.c, gdbmdelete.c, gdbmfetch.c, gdbmseq.c, gdbmstore.c, + gdbmreorg.c: Added initialization of gdbm_errno to GDBM_NO_ERROR. + +Mon Mar 22 23:03:36 1993 Phil Nelson (phil at cs.wwu.edu) + + * gdbmclose.c: (gdbmclose) Added a fsync before close to make + sure the file is written to disk before continuing. + +Sun Mar 21 21:33:31 1993 Phil Nelson (phil at cs.wwu.edu) + + * proto.h: Added this as a new file. It adds ANSI prototypes + for ANSI compilers. + + * gdbmdefs.h: Added an include of proto.h. + + * Makefile: Added proper references to proto.h + + * gdbmopen.c: Changed (int *) casts to (long *) and added + an initialization to dbf->header. + + * gdbmreorg.c: Added an "end update" on the new database and + correctly set up the bucket cache. + + * update.c: (_gdbm_end_update) Added type void to header. + +Wed Mar 17 19:14:27 1993 Phil Nelson (phil at cs.wwu.edu) + + * Changed copyright on all files to include 1993. Also deleted + all references to my phone number. + +Thu Feb 28 17:05:09 1991 Phil Nelson (phil at strawberry.cs.wwu.edu) + + * Added 1991 to copyright lines on all files. + + * gdbmfetch.c: Fixed a bug introduced by previous changes. + + * version.c: Updated version to 1.5. + +Fri Feb 8 12:27:13 1991 Phil Nelson (phil at strawberry.cs.wwu.edu) + + * Change author's e-mail address in all comments. + + * gdbmopen.c, systems.h: Changed opening sequence so that a + database will not be truncated in NEWDB mode until the + write has locked the file. + + * testgdbm.c: Fixed a bug that caused a segmentation fault on + one computer. Also added the flags "-r" for opening the + database as a READER and "-n" for opening the database as + a NEWDB writer. The default mode remains the WRCREAT mode. + + * Various source files, changed the data types of various + variables from int to long. This should not make any difference + to systems where sizeof(int) = sizeof(long). It should make + it easier to move to other systems. + + * gdbmstore.c: Added a check for NULL key or content dptr. Due to + NULLs being used as error indications, data cannot be NULL also. + + * gdbmfetch.c, gdbmseq.c, fetch.c: Added checks for zero sized + key and content so malloc will not try to allocate zero bytes. + + * gdbmconst.h: Added this file so that all constants are in one + central place. A few constants can be changed without changing + the header sizes. + +Tue Aug 14 13:08:43 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * Version 1.4 released. (version.c: Updated to correct version.) + + * Makefile: Added $(LIBS) to link for conv2gdbm. + + * README: Updated to version 1.4 and added a 1.0-1.4 change + statement. + +Wed Aug 8 16:57:29 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * gdbmopen.c: Restructured some code to initialize dbf + more completely. + + * dbm.h: Added a null define to satisfy some versions that + require a dbmclose() call. + + * findkey.c: (_gdbm_findkey) Added a check for the NULL + pointer in ...ca_data.dptr. + + * gdbmdelete.c: Added code to more completely remove the + cache entry for a deleted item. + + * gdbmreorg.c: Added code to finish the transfer of information + from the new_dbf to the orginal dbf. + +Fri May 30 08:29:16 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * gdbmstore.c: Changed a strncpy to bcopy. + +Tue May 15 09:55:21 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * Version 1.3 released. + + * systems.h: Changed the defines for alloca to use the + name builtin_alloca to depend on BUILTIN_ALLOCA instead + of __GNUC__. Added a definition of BUILTIN_ALLOCA for + GNUC and for sun sparc. + +Fri May 11 12:15:56 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * systems.h: Removed the include for <sys/types> and now + systems.h requires <sys/types> included before it. + + * Makefile: Corrected the makefile to include a file that + was missing before. Also, switched order of conv2gdbm + and alldbm in the all option. + + * findkey.c (_gdbm_read_entry): Reordered some statements + to make the code more readable. + + * update.c (_gdbm_fatal): Changed fatal message from "dbm fatal:" + to "gdbm fatal:". + +Mon Apr 30 10:18:24 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * Version 1.2 released. + +Fri Apr 27 09:49:59 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * Makefile: Added the dist option. Similar to the + addition from hack@ai.mit.edu, but correct. + + * falloc.c (push_avail_block): Change the avail count + to reflect the correct number of entries. + + * dbminit.c (dbminit): Changed the stat call to stat the + ".dir" file as is done in dbmopen.c (dbm_open). + +Tue Apr 10 12:18:40 1990 Phil Nelson (phil at unicorn.wwu.edu) + + * Version 1.1. released. + + * gdbmopen.c (gdbm_open): Clear out bucket cache. + + + |