path: root/src
AgeCommit message (Collapse)AuthorFiles
2016-07-07Switch to Git repositorySergey Poznyakoff1
2016-05-16Update copyright yearsSergey Poznyakoff5
2016-05-16Minor improvementsSergey Poznyakoff6
* src/gdbmtool.c (_gdbm_print_bucket_cache): Use %zu to print size_t. * src/gdbmtool.h (variable_unset): New proto. (yyerror): Argument is char const *. src/gram.y: Likewise. * src/lex.l: Add option noinput * src/parseopt.c (print_option_descr): Use fwrite instead of printf. * src/var.c: Fix initializers to suppress warnings.
2015-12-05Minor changesSergey Poznyakoff1
2015-11-02Minor fixSergey Poznyakoff1
2015-03-01Switch to Texinfo 5.0Sergey Poznyakoff2
* doc/Config: Rewrite. * doc/Makefile.am: Use Makeinfo 5 instead of texi2htm * doc/gendocs_template: Ps is not built * imprimatur: Upgrade.
2014-07-03Bugfix.Sergey Poznyakoff1
* src/lex.l (expand_char): Don't return any value.
2014-05-23Compatibility bugfixesSergey Poznyakoff2
* THANKS: Add Thomas Klausner. * src/gdbmtool.h: Rename ARG_ constants to GDBM_ARG_ * src/gdbmtool.c: Likewise. * tests/create00.at: Use modern sort -k syntax. * tests/dbmcreate00.at: Likewise. * tests/dbmdel00.at: Likewise. * tests/delete00.at: Likewise.
2014-02-12BugfixSergey Poznyakoff1
2013-12-25Version 1.11Sergey Poznyakoff37
2013-12-25Minor changes.Sergey Poznyakoff3
* 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-21New function gdbm_count.Sergey Poznyakoff10
* 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-17Update the docs.Sergey Poznyakoff1
* 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-16Provide support for a simplified "define" construct.Sergey Poznyakoff3
* 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-16Improve handling of the variables.Sergey Poznyakoff4
* 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-15Minor changeSergey Poznyakoff1
* src/gdbmtool.c (command_tab): Change variable names in docstrings to uppercase.
2013-05-15Implement the "quiet" variable.Sergey Poznyakoff3
* 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-15Add "pager" variable and "unset" command.Sergey Poznyakoff5
* 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-14Change variable support.Sergey Poznyakoff8
* 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-14Fix distcheck.Sergey Poznyakoff2
2013-05-14Provide "open" and "close" commands; implement new variables.Sergey Poznyakoff7
* 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-14Cleanup.Sergey Poznyakoff4
* src/datconv.c (s_float): Use strtod. (datum_scan_notag, datum_scan_tag): Made static. (dsprint): New function. * src/gdbmtool.c (status_handler): Print ket 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-14Implement rc files and "source" command; improve lexical analyzer.Sergey Poznyakoff5
* 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-13Add support for Berkeley dump format version 3 (read-only).Sergey Poznyakoff4
* src/gdbmapp.h: Include gettext.h and locale.h. * src/gdbmload.c: Support for Berkeley dump format, version 3.
2013-05-13Remove the "read" command. Use "import" instead.Sergey Poznyakoff1
2013-05-13Add "set" and "define" to the main command table.Sergey Poznyakoff5
* 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-13Implement shell variables in gdbmtool.Sergey Poznyakoff7
* src/var.c: New file. * 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-13Handle structured key and content data in gdbmtool.Sergey Poznyakoff6
* 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-11Rewrite gdbmtool parser.Sergey Poznyakoff6
* 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-09Add new prompt escapes.Sergey Poznyakoff1
* src/testgdbm.c: New prompt escapes: %p, %P, %v, %_. Change default prompt to %p>%_. * doc/gdbmtool.1: Document new prompt escapes.
2013-05-08Rename testgdbm to gdbmtool. Improve documentation.Sergey Poznyakoff5
* 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-08Improve testgdbm; install some more bugfixes.Sergey Poznyakoff3
* 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-07Bugfix.Sergey Poznyakoff1
* src/gdbmreorg.c: Call _gdbm_mapped_init when the database structure is fully initialized (Puszcza bug #171).
2011-11-16Improve testgdbmSergey Poznyakoff2
* 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-15Update the docs. Improve dump/load utilities.Sergey Poznyakoff6
* 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-15Return a meaningful error code if failed to restore file's metadata.Sergey Poznyakoff4
* 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-14Forgotten to add earlier.Sergey Poznyakoff1
2011-11-13Implement new dump format. Add new utilities: gdbm_dump and gdbm_load.Sergey Poznyakoff20
* 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-13Minor fixSergey Poznyakoff1
* src/testgdbm.c (main): Call textdomain.
2011-11-12Minor fixes.Sergey Poznyakoff2
* src/Makefile.am: Use libgdbm_la_LIBADD, not just LIBADD. * src/testgdbm.c: Declare some function parameters with const qualifiers.
2011-11-11Implement cloexec in gdbm_reorganize. Add test cases.Sergey Poznyakoff3
* compat/dbmopen.c: Apply O_CLOEXEC for 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-11Use SEEK_SET instead of L_SET.Sergey Poznyakoff8
2011-11-11Support close-on-exec flag for gdbm_open call.Sergey Poznyakoff3
* 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-10-23Define GDBM_FILE_EOF.Sergey Poznyakoff1
2011-10-05Fix bug #150.Sergey Poznyakoff11
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-05Initialize memory used for file header. This fixes bug #151.Sergey Poznyakoff1
2011-08-24Minor fix.Sergey Poznyakoff1
* src/testgdbm.c: Minor fix.
2011-08-24Implement multi-character commands in testgdbm.Sergey Poznyakoff1
* bootstrap (get_po): Discard output from cmp. * src/testgdbm.c: Implement multi-character commands. * doc/gdbm.texinfo: Update.
2011-08-17Make sure errno is preserved, if it can contain details about the gdbm error.Sergey Poznyakoff3
* 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-17Introduce new error code.Sergey Poznyakoff6
* 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.

Return to:

Send suggestions and report system problems to the System administrator.