source: release-kits/shared/mac/gdbm-1.8.3/gdbmsetopt.c@ 16455

Last change on this file since 16455 was 16455, checked in by oranfry, 16 years ago

a compiled gdbm for the mac installer. should leave it uncompiled, but for now just doing it the way the wiki says to.

File size: 2.9 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 /* 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 /* Obsolete form of SYNCMODE. */
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 case GDBM_SYNCMODE:
73 /* Optval will point to either true or false. */
74 if ((*optval != TRUE) && (*optval != FALSE))
75 {
76 gdbm_errno = GDBM_OPT_ILLEGAL;
77 return(-1);
78 }
79
80 dbf->fast_write = !(*optval);
81 break;
82
83 case GDBM_CENTFREE:
84 /* Optval will point to either true or false. */
85 if ((*optval != TRUE) && (*optval != FALSE))
86 {
87 gdbm_errno = GDBM_OPT_ILLEGAL;
88 return(-1);
89 }
90
91 dbf->fast_write = *optval;
92 break;
93
94 case GDBM_COALESCEBLKS:
95 /* Optval will point to either true or false. */
96 if ((*optval != TRUE) && (*optval != FALSE))
97 {
98 gdbm_errno = GDBM_OPT_ILLEGAL;
99 return(-1);
100 }
101
102 dbf->fast_write = *optval;
103 break;
104
105 default:
106 gdbm_errno = GDBM_OPT_ILLEGAL;
107 return(-1);
108 }
109
110 return(0);
111}
Note: See TracBrowser for help on using the repository browser.