source: main/tags/2.26/gsdl/packages/wingdbm/gdbmsetopt.c

Last change on this file was 18, checked in by sjboddie, 26 years ago

Added windows gdbm and mg versions

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1/* gdbmsetopt.c - set options pertaining to a GDBM descriptor. */
2
3/* This file is part of GDBM, the GNU data base manager, by Philip A. Nelson.
4 Copyright (C) 1993, 1994 Free Software Foundation, Inc.
5
6 GDBM is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GDBM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GDBM; see the file COPYING. If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19
20 You may contact the original author by:
21 e-mail: [email protected]
22 us-mail: Philip A. Nelson
23 Computer Science Department
24 Western Washington University
25 Bellingham, WA 98226
26
27 The author of this file is:
28 e-mail: [email protected]
29
30*************************************************************************/
31
32
33/* include system configuration before all else. */
34#include "autoconf.h"
35
36#include "gdbmdefs.h"
37#include "gdbmerrno.h"
38
39/* operate on an already open descriptor. */
40
41/* ARGSUSED */
42int
43gdbm_setopt(dbf, optflag, optval, optlen)
44 gdbm_file_info *dbf; /* descriptor to operate on. */
45 int optflag; /* option to set. */
46 int *optval; /* pointer to option value. */
47 int optlen; /* size of optval. */
48{
49 switch(optflag)
50 {
51 case GDBM_CACHESIZE:
52 /* here, optval will point to the new size of the cache. */
53 if (dbf->bucket_cache != NULL)
54 {
55 gdbm_errno = GDBM_OPT_ALREADY_SET;
56 return(-1);
57 }
58
59 return(_gdbm_init_cache(dbf, ((*optval) > 9) ? (*optval) : 10));
60
61 case GDBM_FASTMODE:
62 /* here, optval will point to either true or false. */
63 if ((*optval != TRUE) && (*optval != FALSE))
64 {
65 gdbm_errno = GDBM_OPT_ILLEGAL;
66 return(-1);
67 }
68
69 dbf->fast_write = *optval;
70 break;
71
72 default:
73 gdbm_errno = GDBM_OPT_ILLEGAL;
74 return(-1);
75 }
76
77 return(0);
78}
Note: See TracBrowser for help on using the repository browser.