source: main/trunk/greenstone2/common-src/indexers/mg/src/text/environment.h@ 29327

Last change on this file since 29327 was 29327, checked in by ak19, 10 years ago

Dr Bainbridge fixed mg segmentation fault on Mac Lion, Mountain Lion and Maverick. On these Macs, mg collections didn't work. At least one mg binary (mg_passes) segfaulted. The problem was that functions GetEnv and IntEnv were declared at a point where their return types were not known. The compiler gave out a warning that the return type was being defaulted to an int (4 bytes). As a result of this, running in the debugger showed that the return values from these functions had got truncated. Dr Bainbridge allowed the files with the functions to know the return types at the necessary time during compilation by ensuring the necessary header files (mglong.h and environment.h) were included at the right time and in the right places so that they were available to the c functions and files that needed to know about them.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
1/**************************************************************************
2 *
3 * environment.h -- mgquery environment functions
4 * Copyright (C) 1994 Neil Sharman
5 *
6 * This program 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 of the License, or
9 * (at your option) any later version.
10 *
11 * This program 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 this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 * $Id: environment.h 29327 2014-09-22 06:13:42Z ak19 $
21 *
22 **************************************************************************/
23
24
25#ifndef ENVIRONMENT_H
26#define ENVIRONMENT_H
27
28#include "mglong.h"
29
30#define OUTPUT_TEXT 'T'
31#define OUTPUT_HEADERS 'H'
32#define OUTPUT_SILENT 'S'
33#define OUTPUT_EXTRAS 'E'
34#define OUTPUT_HILITE 'I'
35#define OUTPUT_COUNT 'C'
36#define OUTPUT_DOCNUMS 'D'
37
38#define QUERY_RANKED 'R'
39#define QUERY_APPROX 'A'
40#define QUERY_BOOLEAN 'B'
41#define QUERY_DOCNUMS 'D'
42
43
44char get_output_type (void);
45char get_query_type (void);
46
47extern char *ConstraintErrorStr;
48int SetEnv (char *name, char *data, char *(*Constraint) (char *, char *));
49char *GetEnv (char *name);
50char *GetDefEnv (char *name, char *def);
51int UnsetEnv (char *name, int Force);
52char *de_escape_string (char *s);
53int PushEnv (void);
54int PopEnv (void);
55int EnvStackHeight (void);
56char *GetEnvName (int i);
57int BooleanEnv (char *data, int def);
58mg_s_long IntEnv (char *data, mg_s_long def);
59
60void InitEnv (void);
61void UninitEnv (void);
62
63#endif
Note: See TracBrowser for help on using the repository browser.