source: trunk/gsdl/lib/gsdltools.h@ 1782

Last change on this file since 1782 was 1678, checked in by sjboddie, 24 years ago

Re-added some recent changes that got lost when the cvs repository was
moved. This was mostly changes to the collector and building code

  • Property svn:keywords set to Author Date Id Revision
File size: 2.6 KB
Line 
1/**********************************************************************
2 *
3 * gsdltools.h --
4 * A component of the Greenstone digital library software
5 * from the New Zealand Digital Library Project at the
6 * University of Waikato, New Zealand.
7 *
8 * Copyright (C) 1999 The New Zealand Digital Library Project
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 *********************************************************************/
25
26
27#ifndef GSDLTOOLS_H
28#define GSDLTOOLS_H
29
30// don't actually use this but some windows
31// versions of STL complain about use of
32// bool keyword without it
33#include "text_t.h"
34
35// returns true if machine is little endian
36bool littleEndian();
37
38
39// escapes '\' and '_' characters with '\'
40// note that single '\' characters occurring
41// naturally within text (or filenames!!) will
42// be removed by the dm macro language
43text_t dm_safe (const text_t &instring);
44
45
46// gsdl_system spawns a completely separate program (i.e. the calling
47// program continues and terminates normally). Arguments containing special
48// characters (e.g. '&') should be quoted with ""
49void gsdl_system (char *cmd, ostream &logout);
50
51
52// gsdl_call_perl executes the perl script perl_cmd, passing it all the
53// arguments provided.
54
55// Arguments should be text_t's, the last argument should be an empty text_t.
56
57// perl_cmd shouldn't contain the path to the script as we use "perl -S"
58// to find it. This means that the PATH environment variable of the calling
59// process should contain the directory where the perl_cmd script lives.
60
61// Uses a standard system() call on unix and a synchronous _spawn() on windows.
62// We use the _spawn() because windows 9* doesn't seem to pass the
63// environment of the calling process to the new process when using
64// system (which we need to do).
65
66// all arguments will be quoted with double quotes [""] so they should be unquoted
67// when passed in.
68
69// returns the exit status of the called process (-1 if system() or _spawn() failed)
70int gsdl_call_perl (char *perl_cmd, ...);
71
72
73#endif
Note: See TracBrowser for help on using the repository browser.