content_server 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/backup_server +8 -20
- data/bin/content_server +8 -20
- data/bin/testing_memory +60 -0
- data/bin/testing_server +57 -0
- data/ext/run_in_background/mkrf_conf.rb +34 -0
- data/lib/content_data/content_data.rb +613 -0
- data/lib/content_data/version.rb +3 -0
- data/lib/content_data.rb +6 -0
- data/lib/content_server/backup_server.rb +65 -86
- data/lib/content_server/content_server.rb +47 -77
- data/lib/content_server/file_streamer.rb +27 -33
- data/lib/content_server/queue_copy.rb +154 -49
- data/lib/content_server/queue_indexer.rb +19 -11
- data/lib/content_server/remote_content.rb +41 -23
- data/lib/content_server/server.rb +91 -0
- data/lib/content_server/version.rb +1 -1
- data/lib/content_server.rb +0 -15
- data/lib/email/email.rb +87 -0
- data/lib/email/version.rb +3 -0
- data/lib/email.rb +4 -0
- data/lib/file_copy/copy.rb +68 -0
- data/lib/file_copy/version.rb +4 -0
- data/lib/file_copy.rb +4 -0
- data/lib/file_indexing/index_agent.rb +170 -0
- data/lib/file_indexing/indexer_patterns.rb +72 -0
- data/lib/file_indexing/version.rb +3 -0
- data/lib/file_indexing.rb +9 -0
- data/lib/file_monitoring/file_monitoring.rb +105 -0
- data/lib/file_monitoring/monitor_path.rb +304 -0
- data/lib/file_monitoring/version.rb +3 -0
- data/lib/file_monitoring.rb +29 -0
- data/lib/file_utils/file_generator/README +97 -0
- data/lib/file_utils/file_generator/file_generator.rb +156 -0
- data/lib/file_utils/file_utils.rb +260 -0
- data/lib/file_utils/version.rb +3 -0
- data/lib/file_utils.rb +4 -0
- data/lib/log/version.rb +3 -0
- data/lib/log.rb +188 -0
- data/lib/networking/tcp.rb +213 -0
- data/lib/networking/version.rb +3 -0
- data/lib/networking.rb +4 -0
- data/lib/params/version.rb +3 -0
- data/lib/params.rb +419 -0
- data/lib/process_monitoring/monitoring.rb +85 -0
- data/lib/process_monitoring/monitoring_info.rb +79 -0
- data/lib/process_monitoring/send_email.rb +40 -0
- data/lib/process_monitoring/thread_safe_hash.rb +77 -0
- data/lib/process_monitoring/version.rb +3 -0
- data/lib/process_monitoring.rb +6 -0
- data/lib/run_in_background/version.rb +3 -0
- data/lib/run_in_background.rb +432 -0
- data/lib/testing_memory/testing_memory.rb +187 -0
- data/lib/testing_server/testing_server.rb +236 -0
- data/lib/testing_server/version.rb +3 -0
- data/lib/testing_server.rb +12 -0
- data/lib/validations/index_validations.rb +106 -0
- data/lib/validations/version.rb +3 -0
- data/lib/validations.rb +4 -0
- data/spec/content_data/validations_spec.rb +113 -0
- data/spec/file_copy/copy_spec.rb +54 -0
- data/spec/file_indexing/index_agent_spec.rb +53 -0
- data/spec/networking/tcp_spec.rb +95 -0
- data/spec/validations/index_validations_spec.rb +77 -0
- data/test/content_data/content_data_test.rb +290 -0
- data/test/file_generator/file_generator_spec.rb +84 -0
- data/test/file_indexing/index_agent_test/New.txt +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/bin/libexslt.dll +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/bin/libxslt.dll +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/bin/xsltproc.exe +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libexslt/exslt.h +102 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libexslt/exsltconfig.h +73 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libexslt/exsltexports.h +140 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libexslt/libexslt.h +29 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/attributes.h +38 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/documents.h +93 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/extensions.h +262 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/extra.h +80 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/functions.h +78 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/imports.h +75 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/keys.h +53 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/libxslt.h +30 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/namespaces.h +68 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/numbersInternals.h +69 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/pattern.h +81 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/preproc.h +43 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/security.h +104 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/templates.h +77 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/transform.h +207 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/trio.h +216 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/triodef.h +220 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/variables.h +91 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/win32config.h +101 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xslt.h +103 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltInternals.h +1967 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltconfig.h +172 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltexports.h +142 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltlocale.h +57 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltutils.h +309 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/include/libxslt/xsltwin32config.h +105 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/lib/libexslt.lib +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/lib/libexslt_a.lib +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/lib/libxslt.lib +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/lib/libxslt_a.lib +0 -0
- data/test/file_indexing/index_agent_test/libxslt-1.1.26.win32/readme.txt +22 -0
- data/test/file_indexing/index_agent_test/patterns.input +3 -0
- data/test/file_indexing/index_agent_test.rb +51 -0
- data/test/file_monitoring/file_monitoring_test/conf.yml +4 -0
- data/test/file_monitoring/file_monitoring_test/conf_win32.yml +5 -0
- data/test/file_monitoring/file_monitoring_test/log +56 -0
- data/test/file_monitoring/file_monitoring_test.rb +0 -0
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000 +1000 -0
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000.0 +1000 -0
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000.1 +1000 -0
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500 +1500 -0
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500.0 +1500 -0
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500.1 +1500 -0
- data/test/file_monitoring/monitor_path_test/test_file.500 +500 -0
- data/test/file_monitoring/monitor_path_test/test_file.500.0 +500 -0
- data/test/file_monitoring/monitor_path_test/test_file.500.1 +500 -0
- data/test/file_monitoring/monitor_path_test.rb +153 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500 +1500 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500.0 +1500 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500.1 +1500 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000 +1000 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000.0 +1000 -0
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000.1 +1000 -0
- data/test/file_utils/fileutil_mksymlink_test/test_file.500 +500 -0
- data/test/file_utils/fileutil_mksymlink_test/test_file.500.0 +500 -0
- data/test/file_utils/fileutil_mksymlink_test/test_file.500.1 +500 -0
- data/test/file_utils/fileutil_mksymlink_test.rb +125 -0
- data/test/file_utils/time_modification_test.rb +132 -0
- data/test/params/params_spec.rb +280 -0
- data/test/params/params_test.rb +43 -0
- data/test/run_in_background/run_in_background_test.rb +122 -0
- data/test/run_in_background/test_app +57 -0
- metadata +272 -132
- data/lib/content_server/globals.rb +0 -10
@@ -0,0 +1,207 @@
|
|
1
|
+
/*
|
2
|
+
* Summary: the XSLT engine transformation part.
|
3
|
+
* Description: This module implements the bulk of the actual
|
4
|
+
* transformation processing. Most of the xsl: element
|
5
|
+
* constructs are implemented in this module.
|
6
|
+
*
|
7
|
+
* Copy: See Copyright for the status of this software.
|
8
|
+
*
|
9
|
+
* Author: Daniel Veillard
|
10
|
+
*/
|
11
|
+
|
12
|
+
#ifndef __XML_XSLT_TRANSFORM_H__
|
13
|
+
#define __XML_XSLT_TRANSFORM_H__
|
14
|
+
|
15
|
+
#include <libxml/parser.h>
|
16
|
+
#include <libxml/xmlIO.h>
|
17
|
+
#include "xsltexports.h"
|
18
|
+
#include <libxslt/xsltInternals.h>
|
19
|
+
|
20
|
+
#ifdef __cplusplus
|
21
|
+
extern "C" {
|
22
|
+
#endif
|
23
|
+
|
24
|
+
/**
|
25
|
+
* XInclude default processing.
|
26
|
+
*/
|
27
|
+
XSLTPUBFUN void XSLTCALL
|
28
|
+
xsltSetXIncludeDefault (int xinclude);
|
29
|
+
XSLTPUBFUN int XSLTCALL
|
30
|
+
xsltGetXIncludeDefault (void);
|
31
|
+
|
32
|
+
/**
|
33
|
+
* Export context to users.
|
34
|
+
*/
|
35
|
+
XSLTPUBFUN xsltTransformContextPtr XSLTCALL
|
36
|
+
xsltNewTransformContext (xsltStylesheetPtr style,
|
37
|
+
xmlDocPtr doc);
|
38
|
+
|
39
|
+
XSLTPUBFUN void XSLTCALL
|
40
|
+
xsltFreeTransformContext(xsltTransformContextPtr ctxt);
|
41
|
+
|
42
|
+
XSLTPUBFUN xmlDocPtr XSLTCALL
|
43
|
+
xsltApplyStylesheetUser (xsltStylesheetPtr style,
|
44
|
+
xmlDocPtr doc,
|
45
|
+
const char **params,
|
46
|
+
const char *output,
|
47
|
+
FILE * profile,
|
48
|
+
xsltTransformContextPtr userCtxt);
|
49
|
+
XSLTPUBFUN void XSLTCALL
|
50
|
+
xsltProcessOneNode (xsltTransformContextPtr ctxt,
|
51
|
+
xmlNodePtr node,
|
52
|
+
xsltStackElemPtr params);
|
53
|
+
/**
|
54
|
+
* Private Interfaces.
|
55
|
+
*/
|
56
|
+
XSLTPUBFUN void XSLTCALL
|
57
|
+
xsltApplyStripSpaces (xsltTransformContextPtr ctxt,
|
58
|
+
xmlNodePtr node);
|
59
|
+
XSLTPUBFUN xmlDocPtr XSLTCALL
|
60
|
+
xsltApplyStylesheet (xsltStylesheetPtr style,
|
61
|
+
xmlDocPtr doc,
|
62
|
+
const char **params);
|
63
|
+
XSLTPUBFUN xmlDocPtr XSLTCALL
|
64
|
+
xsltProfileStylesheet (xsltStylesheetPtr style,
|
65
|
+
xmlDocPtr doc,
|
66
|
+
const char **params,
|
67
|
+
FILE * output);
|
68
|
+
XSLTPUBFUN int XSLTCALL
|
69
|
+
xsltRunStylesheet (xsltStylesheetPtr style,
|
70
|
+
xmlDocPtr doc,
|
71
|
+
const char **params,
|
72
|
+
const char *output,
|
73
|
+
xmlSAXHandlerPtr SAX,
|
74
|
+
xmlOutputBufferPtr IObuf);
|
75
|
+
XSLTPUBFUN int XSLTCALL
|
76
|
+
xsltRunStylesheetUser (xsltStylesheetPtr style,
|
77
|
+
xmlDocPtr doc,
|
78
|
+
const char **params,
|
79
|
+
const char *output,
|
80
|
+
xmlSAXHandlerPtr SAX,
|
81
|
+
xmlOutputBufferPtr IObuf,
|
82
|
+
FILE * profile,
|
83
|
+
xsltTransformContextPtr userCtxt);
|
84
|
+
XSLTPUBFUN void XSLTCALL
|
85
|
+
xsltApplyOneTemplate (xsltTransformContextPtr ctxt,
|
86
|
+
xmlNodePtr node,
|
87
|
+
xmlNodePtr list,
|
88
|
+
xsltTemplatePtr templ,
|
89
|
+
xsltStackElemPtr params);
|
90
|
+
XSLTPUBFUN void XSLTCALL
|
91
|
+
xsltDocumentElem (xsltTransformContextPtr ctxt,
|
92
|
+
xmlNodePtr node,
|
93
|
+
xmlNodePtr inst,
|
94
|
+
xsltStylePreCompPtr comp);
|
95
|
+
XSLTPUBFUN void XSLTCALL
|
96
|
+
xsltSort (xsltTransformContextPtr ctxt,
|
97
|
+
xmlNodePtr node,
|
98
|
+
xmlNodePtr inst,
|
99
|
+
xsltStylePreCompPtr comp);
|
100
|
+
XSLTPUBFUN void XSLTCALL
|
101
|
+
xsltCopy (xsltTransformContextPtr ctxt,
|
102
|
+
xmlNodePtr node,
|
103
|
+
xmlNodePtr inst,
|
104
|
+
xsltStylePreCompPtr comp);
|
105
|
+
XSLTPUBFUN void XSLTCALL
|
106
|
+
xsltText (xsltTransformContextPtr ctxt,
|
107
|
+
xmlNodePtr node,
|
108
|
+
xmlNodePtr inst,
|
109
|
+
xsltStylePreCompPtr comp);
|
110
|
+
XSLTPUBFUN void XSLTCALL
|
111
|
+
xsltElement (xsltTransformContextPtr ctxt,
|
112
|
+
xmlNodePtr node,
|
113
|
+
xmlNodePtr inst,
|
114
|
+
xsltStylePreCompPtr comp);
|
115
|
+
XSLTPUBFUN void XSLTCALL
|
116
|
+
xsltComment (xsltTransformContextPtr ctxt,
|
117
|
+
xmlNodePtr node,
|
118
|
+
xmlNodePtr inst,
|
119
|
+
xsltStylePreCompPtr comp);
|
120
|
+
XSLTPUBFUN void XSLTCALL
|
121
|
+
xsltAttribute (xsltTransformContextPtr ctxt,
|
122
|
+
xmlNodePtr node,
|
123
|
+
xmlNodePtr inst,
|
124
|
+
xsltStylePreCompPtr comp);
|
125
|
+
XSLTPUBFUN void XSLTCALL
|
126
|
+
xsltProcessingInstruction(xsltTransformContextPtr ctxt,
|
127
|
+
xmlNodePtr node,
|
128
|
+
xmlNodePtr inst,
|
129
|
+
xsltStylePreCompPtr comp);
|
130
|
+
XSLTPUBFUN void XSLTCALL
|
131
|
+
xsltCopyOf (xsltTransformContextPtr ctxt,
|
132
|
+
xmlNodePtr node,
|
133
|
+
xmlNodePtr inst,
|
134
|
+
xsltStylePreCompPtr comp);
|
135
|
+
XSLTPUBFUN void XSLTCALL
|
136
|
+
xsltValueOf (xsltTransformContextPtr ctxt,
|
137
|
+
xmlNodePtr node,
|
138
|
+
xmlNodePtr inst,
|
139
|
+
xsltStylePreCompPtr comp);
|
140
|
+
XSLTPUBFUN void XSLTCALL
|
141
|
+
xsltNumber (xsltTransformContextPtr ctxt,
|
142
|
+
xmlNodePtr node,
|
143
|
+
xmlNodePtr inst,
|
144
|
+
xsltStylePreCompPtr comp);
|
145
|
+
XSLTPUBFUN void XSLTCALL
|
146
|
+
xsltApplyImports (xsltTransformContextPtr ctxt,
|
147
|
+
xmlNodePtr node,
|
148
|
+
xmlNodePtr inst,
|
149
|
+
xsltStylePreCompPtr comp);
|
150
|
+
XSLTPUBFUN void XSLTCALL
|
151
|
+
xsltCallTemplate (xsltTransformContextPtr ctxt,
|
152
|
+
xmlNodePtr node,
|
153
|
+
xmlNodePtr inst,
|
154
|
+
xsltStylePreCompPtr comp);
|
155
|
+
XSLTPUBFUN void XSLTCALL
|
156
|
+
xsltApplyTemplates (xsltTransformContextPtr ctxt,
|
157
|
+
xmlNodePtr node,
|
158
|
+
xmlNodePtr inst,
|
159
|
+
xsltStylePreCompPtr comp);
|
160
|
+
XSLTPUBFUN void XSLTCALL
|
161
|
+
xsltChoose (xsltTransformContextPtr ctxt,
|
162
|
+
xmlNodePtr node,
|
163
|
+
xmlNodePtr inst,
|
164
|
+
xsltStylePreCompPtr comp);
|
165
|
+
XSLTPUBFUN void XSLTCALL
|
166
|
+
xsltIf (xsltTransformContextPtr ctxt,
|
167
|
+
xmlNodePtr node,
|
168
|
+
xmlNodePtr inst,
|
169
|
+
xsltStylePreCompPtr comp);
|
170
|
+
XSLTPUBFUN void XSLTCALL
|
171
|
+
xsltForEach (xsltTransformContextPtr ctxt,
|
172
|
+
xmlNodePtr node,
|
173
|
+
xmlNodePtr inst,
|
174
|
+
xsltStylePreCompPtr comp);
|
175
|
+
XSLTPUBFUN void XSLTCALL
|
176
|
+
xsltRegisterAllElement (xsltTransformContextPtr ctxt);
|
177
|
+
|
178
|
+
XSLTPUBFUN xmlNodePtr XSLTCALL
|
179
|
+
xsltCopyTextString (xsltTransformContextPtr ctxt,
|
180
|
+
xmlNodePtr target,
|
181
|
+
const xmlChar *string,
|
182
|
+
int noescape);
|
183
|
+
|
184
|
+
/* Following 2 functions needed for libexslt/functions.c */
|
185
|
+
XSLTPUBFUN void XSLTCALL
|
186
|
+
xsltLocalVariablePop (xsltTransformContextPtr ctxt,
|
187
|
+
int limitNr,
|
188
|
+
int level);
|
189
|
+
XSLTPUBFUN int XSLTCALL
|
190
|
+
xsltLocalVariablePush (xsltTransformContextPtr ctxt,
|
191
|
+
xsltStackElemPtr variable,
|
192
|
+
int level);
|
193
|
+
/*
|
194
|
+
* Hook for the debugger if activated.
|
195
|
+
*/
|
196
|
+
XSLTPUBFUN void XSLTCALL
|
197
|
+
xslHandleDebugger (xmlNodePtr cur,
|
198
|
+
xmlNodePtr node,
|
199
|
+
xsltTemplatePtr templ,
|
200
|
+
xsltTransformContextPtr ctxt);
|
201
|
+
|
202
|
+
#ifdef __cplusplus
|
203
|
+
}
|
204
|
+
#endif
|
205
|
+
|
206
|
+
#endif /* __XML_XSLT_TRANSFORM_H__ */
|
207
|
+
|
@@ -0,0 +1,216 @@
|
|
1
|
+
/*************************************************************************
|
2
|
+
*
|
3
|
+
* $Id$
|
4
|
+
*
|
5
|
+
* Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
|
6
|
+
*
|
7
|
+
* Permission to use, copy, modify, and distribute this software for any
|
8
|
+
* purpose with or without fee is hereby granted, provided that the above
|
9
|
+
* copyright notice and this permission notice appear in all copies.
|
10
|
+
*
|
11
|
+
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
12
|
+
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
13
|
+
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
|
14
|
+
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
|
15
|
+
*
|
16
|
+
*************************************************************************
|
17
|
+
*
|
18
|
+
* http://ctrio.sourceforge.net/
|
19
|
+
*
|
20
|
+
************************************************************************/
|
21
|
+
|
22
|
+
#ifndef TRIO_TRIO_H
|
23
|
+
#define TRIO_TRIO_H
|
24
|
+
|
25
|
+
#if !defined(WITHOUT_TRIO)
|
26
|
+
|
27
|
+
/*
|
28
|
+
* Use autoconf defines if present. Packages using trio must define
|
29
|
+
* HAVE_CONFIG_H as a compiler option themselves.
|
30
|
+
*/
|
31
|
+
#if defined(HAVE_CONFIG_H)
|
32
|
+
# include <config.h>
|
33
|
+
#endif
|
34
|
+
|
35
|
+
#include "triodef.h"
|
36
|
+
|
37
|
+
#include <stdio.h>
|
38
|
+
#include <stdlib.h>
|
39
|
+
#if defined(TRIO_COMPILER_ANCIENT)
|
40
|
+
# include <varargs.h>
|
41
|
+
#else
|
42
|
+
# include <stdarg.h>
|
43
|
+
#endif
|
44
|
+
|
45
|
+
#ifdef __cplusplus
|
46
|
+
extern "C" {
|
47
|
+
#endif
|
48
|
+
|
49
|
+
/*
|
50
|
+
* Error codes.
|
51
|
+
*
|
52
|
+
* Remember to add a textual description to trio_strerror.
|
53
|
+
*/
|
54
|
+
enum {
|
55
|
+
TRIO_EOF = 1,
|
56
|
+
TRIO_EINVAL = 2,
|
57
|
+
TRIO_ETOOMANY = 3,
|
58
|
+
TRIO_EDBLREF = 4,
|
59
|
+
TRIO_EGAP = 5,
|
60
|
+
TRIO_ENOMEM = 6,
|
61
|
+
TRIO_ERANGE = 7,
|
62
|
+
TRIO_ERRNO = 8,
|
63
|
+
TRIO_ECUSTOM = 9
|
64
|
+
};
|
65
|
+
|
66
|
+
/* Error macros */
|
67
|
+
#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF)
|
68
|
+
#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
|
69
|
+
#define TRIO_ERROR_NAME(x) trio_strerror(x)
|
70
|
+
|
71
|
+
typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int));
|
72
|
+
typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t));
|
73
|
+
|
74
|
+
TRIO_CONST char *trio_strerror TRIO_PROTO((int));
|
75
|
+
|
76
|
+
/*************************************************************************
|
77
|
+
* Print Functions
|
78
|
+
*/
|
79
|
+
|
80
|
+
int trio_printf TRIO_PROTO((TRIO_CONST char *format, ...));
|
81
|
+
int trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
|
82
|
+
int trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args));
|
83
|
+
|
84
|
+
int trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
|
85
|
+
int trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
|
86
|
+
int trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
|
87
|
+
|
88
|
+
int trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
|
89
|
+
int trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
|
90
|
+
int trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
|
91
|
+
|
92
|
+
int trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
|
93
|
+
TRIO_CONST char *format, ...));
|
94
|
+
int trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
|
95
|
+
TRIO_CONST char *format, va_list args));
|
96
|
+
int trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
|
97
|
+
TRIO_CONST char *format, void **args));
|
98
|
+
|
99
|
+
int trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...));
|
100
|
+
int trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args));
|
101
|
+
int trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args));
|
102
|
+
|
103
|
+
int trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
|
104
|
+
int trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
|
105
|
+
va_list args));
|
106
|
+
int trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
|
107
|
+
void **args));
|
108
|
+
|
109
|
+
int trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
|
110
|
+
int trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
|
111
|
+
va_list args));
|
112
|
+
|
113
|
+
char *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...));
|
114
|
+
char *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
|
115
|
+
|
116
|
+
int trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...));
|
117
|
+
int trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args));
|
118
|
+
|
119
|
+
/*************************************************************************
|
120
|
+
* Scan Functions
|
121
|
+
*/
|
122
|
+
int trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...));
|
123
|
+
int trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args));
|
124
|
+
int trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args));
|
125
|
+
|
126
|
+
int trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
|
127
|
+
int trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
|
128
|
+
int trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
|
129
|
+
|
130
|
+
int trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
|
131
|
+
int trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
|
132
|
+
int trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
|
133
|
+
|
134
|
+
int trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
|
135
|
+
TRIO_CONST char *format, ...));
|
136
|
+
int trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
|
137
|
+
TRIO_CONST char *format, va_list args));
|
138
|
+
int trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
|
139
|
+
TRIO_CONST char *format, void **args));
|
140
|
+
|
141
|
+
int trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...));
|
142
|
+
int trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args));
|
143
|
+
int trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args));
|
144
|
+
|
145
|
+
/*************************************************************************
|
146
|
+
* Locale Functions
|
147
|
+
*/
|
148
|
+
void trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint));
|
149
|
+
void trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator));
|
150
|
+
void trio_locale_set_grouping TRIO_PROTO((char *grouping));
|
151
|
+
|
152
|
+
/*************************************************************************
|
153
|
+
* Renaming
|
154
|
+
*/
|
155
|
+
#ifdef TRIO_REPLACE_STDIO
|
156
|
+
/* Replace the <stdio.h> functions */
|
157
|
+
#ifndef HAVE_PRINTF
|
158
|
+
# define printf trio_printf
|
159
|
+
#endif
|
160
|
+
#ifndef HAVE_VPRINTF
|
161
|
+
# define vprintf trio_vprintf
|
162
|
+
#endif
|
163
|
+
#ifndef HAVE_FPRINTF
|
164
|
+
# define fprintf trio_fprintf
|
165
|
+
#endif
|
166
|
+
#ifndef HAVE_VFPRINTF
|
167
|
+
# define vfprintf trio_vfprintf
|
168
|
+
#endif
|
169
|
+
#ifndef HAVE_SPRINTF
|
170
|
+
# define sprintf trio_sprintf
|
171
|
+
#endif
|
172
|
+
#ifndef HAVE_VSPRINTF
|
173
|
+
# define vsprintf trio_vsprintf
|
174
|
+
#endif
|
175
|
+
#ifndef HAVE_SNPRINTF
|
176
|
+
# define snprintf trio_snprintf
|
177
|
+
#endif
|
178
|
+
#ifndef HAVE_VSNPRINTF
|
179
|
+
# define vsnprintf trio_vsnprintf
|
180
|
+
#endif
|
181
|
+
#ifndef HAVE_SCANF
|
182
|
+
# define scanf trio_scanf
|
183
|
+
#endif
|
184
|
+
#ifndef HAVE_VSCANF
|
185
|
+
# define vscanf trio_vscanf
|
186
|
+
#endif
|
187
|
+
#ifndef HAVE_FSCANF
|
188
|
+
# define fscanf trio_fscanf
|
189
|
+
#endif
|
190
|
+
#ifndef HAVE_VFSCANF
|
191
|
+
# define vfscanf trio_vfscanf
|
192
|
+
#endif
|
193
|
+
#ifndef HAVE_SSCANF
|
194
|
+
# define sscanf trio_sscanf
|
195
|
+
#endif
|
196
|
+
#ifndef HAVE_VSSCANF
|
197
|
+
# define vsscanf trio_vsscanf
|
198
|
+
#endif
|
199
|
+
/* These aren't stdio functions, but we make them look similar */
|
200
|
+
#define dprintf trio_dprintf
|
201
|
+
#define vdprintf trio_vdprintf
|
202
|
+
#define aprintf trio_aprintf
|
203
|
+
#define vaprintf trio_vaprintf
|
204
|
+
#define asprintf trio_asprintf
|
205
|
+
#define vasprintf trio_vasprintf
|
206
|
+
#define dscanf trio_dscanf
|
207
|
+
#define vdscanf trio_vdscanf
|
208
|
+
#endif
|
209
|
+
|
210
|
+
#ifdef __cplusplus
|
211
|
+
} /* extern "C" */
|
212
|
+
#endif
|
213
|
+
|
214
|
+
#endif /* WITHOUT_TRIO */
|
215
|
+
|
216
|
+
#endif /* TRIO_TRIO_H */
|
@@ -0,0 +1,220 @@
|
|
1
|
+
/*************************************************************************
|
2
|
+
*
|
3
|
+
* $Id$
|
4
|
+
*
|
5
|
+
* Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
|
6
|
+
*
|
7
|
+
* Permission to use, copy, modify, and distribute this software for any
|
8
|
+
* purpose with or without fee is hereby granted, provided that the above
|
9
|
+
* copyright notice and this permission notice appear in all copies.
|
10
|
+
*
|
11
|
+
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
12
|
+
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
13
|
+
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
|
14
|
+
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
|
15
|
+
*
|
16
|
+
************************************************************************/
|
17
|
+
|
18
|
+
#ifndef TRIO_TRIODEF_H
|
19
|
+
#define TRIO_TRIODEF_H
|
20
|
+
|
21
|
+
/*************************************************************************
|
22
|
+
* Platform and compiler support detection
|
23
|
+
*/
|
24
|
+
#if defined(__GNUC__)
|
25
|
+
# define TRIO_COMPILER_GCC
|
26
|
+
#elif defined(__SUNPRO_C)
|
27
|
+
# define TRIO_COMPILER_SUNPRO
|
28
|
+
#elif defined(__SUNPRO_CC)
|
29
|
+
# define TRIO_COMPILER_SUNPRO
|
30
|
+
# define __SUNPRO_C __SUNPRO_CC
|
31
|
+
#elif defined(__xlC__) || defined(__IBMC__) || defined(__IBMCPP__)
|
32
|
+
# define TRIO_COMPILER_XLC
|
33
|
+
#elif defined(_AIX) && !defined(__GNUC__)
|
34
|
+
# define TRIO_COMPILER_XLC /* Workaround for old xlc */
|
35
|
+
#elif defined(__DECC) || defined(__DECCXX)
|
36
|
+
# define TRIO_COMPILER_DECC
|
37
|
+
#elif defined(__osf__) && defined(__LANGUAGE_C__)
|
38
|
+
# define TRIO_COMPILER_DECC /* Workaround for old DEC C compilers */
|
39
|
+
#elif defined(_MSC_VER)
|
40
|
+
# define TRIO_COMPILER_MSVC
|
41
|
+
#elif defined(__BORLANDC__)
|
42
|
+
# define TRIO_COMPILER_BCB
|
43
|
+
#endif
|
44
|
+
|
45
|
+
#if defined(VMS) || defined(__VMS)
|
46
|
+
/*
|
47
|
+
* VMS is placed first to avoid identifying the platform as Unix
|
48
|
+
* based on the DECC compiler later on.
|
49
|
+
*/
|
50
|
+
# define TRIO_PLATFORM_VMS
|
51
|
+
#elif defined(unix) || defined(__unix) || defined(__unix__)
|
52
|
+
# define TRIO_PLATFORM_UNIX
|
53
|
+
#elif defined(TRIO_COMPILER_XLC) || defined(_AIX)
|
54
|
+
# define TRIO_PLATFORM_UNIX
|
55
|
+
#elif defined(TRIO_COMPILER_DECC) || defined(__osf___)
|
56
|
+
# define TRIO_PLATFORM_UNIX
|
57
|
+
#elif defined(__NetBSD__)
|
58
|
+
# define TRIO_PLATFORM_UNIX
|
59
|
+
#elif defined(__QNX__)
|
60
|
+
# define TRIO_PLATFORM_UNIX
|
61
|
+
# define TRIO_PLATFORM_QNX
|
62
|
+
#elif defined(__CYGWIN__)
|
63
|
+
# define TRIO_PLATFORM_UNIX
|
64
|
+
#elif defined(AMIGA) && defined(TRIO_COMPILER_GCC)
|
65
|
+
# define TRIO_PLATFORM_UNIX
|
66
|
+
#elif defined(TRIO_COMPILER_MSVC) || defined(WIN32) || defined(_WIN32)
|
67
|
+
# define TRIO_PLATFORM_WIN32
|
68
|
+
#elif defined(mpeix) || defined(__mpexl)
|
69
|
+
# define TRIO_PLATFORM_MPEIX
|
70
|
+
#endif
|
71
|
+
|
72
|
+
#if defined(_AIX)
|
73
|
+
# define TRIO_PLATFORM_AIX
|
74
|
+
#elif defined(__hpux)
|
75
|
+
# define TRIO_PLATFORM_HPUX
|
76
|
+
#elif defined(sun) || defined(__sun__)
|
77
|
+
# if defined(__SVR4) || defined(__svr4__)
|
78
|
+
# define TRIO_PLATFORM_SOLARIS
|
79
|
+
# else
|
80
|
+
# define TRIO_PLATFORM_SUNOS
|
81
|
+
# endif
|
82
|
+
#endif
|
83
|
+
|
84
|
+
#if defined(__STDC__) || defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB)
|
85
|
+
# define TRIO_COMPILER_SUPPORTS_C89
|
86
|
+
# if defined(__STDC_VERSION__)
|
87
|
+
# define TRIO_COMPILER_SUPPORTS_C90
|
88
|
+
# if (__STDC_VERSION__ >= 199409L)
|
89
|
+
# define TRIO_COMPILER_SUPPORTS_C94
|
90
|
+
# endif
|
91
|
+
# if (__STDC_VERSION__ >= 199901L)
|
92
|
+
# define TRIO_COMPILER_SUPPORTS_C99
|
93
|
+
# endif
|
94
|
+
# elif defined(TRIO_COMPILER_SUNPRO)
|
95
|
+
# if (__SUNPRO_C >= 0x420)
|
96
|
+
# define TRIO_COMPILER_SUPPORTS_C94
|
97
|
+
# endif
|
98
|
+
# endif
|
99
|
+
#endif
|
100
|
+
|
101
|
+
#if defined(_XOPEN_SOURCE)
|
102
|
+
# if defined(_XOPEN_SOURCE_EXTENDED)
|
103
|
+
# define TRIO_COMPILER_SUPPORTS_UNIX95
|
104
|
+
# endif
|
105
|
+
# if (_XOPEN_VERSION >= 500)
|
106
|
+
# define TRIO_COMPILER_SUPPORTS_UNIX98
|
107
|
+
# endif
|
108
|
+
# if (_XOPEN_VERSION >= 600)
|
109
|
+
# define TRIO_COMPILER_SUPPORTS_UNIX01
|
110
|
+
# endif
|
111
|
+
#endif
|
112
|
+
|
113
|
+
/*************************************************************************
|
114
|
+
* Generic defines
|
115
|
+
*/
|
116
|
+
|
117
|
+
#if !defined(TRIO_PUBLIC)
|
118
|
+
# define TRIO_PUBLIC
|
119
|
+
#endif
|
120
|
+
#if !defined(TRIO_PRIVATE)
|
121
|
+
# define TRIO_PRIVATE static
|
122
|
+
#endif
|
123
|
+
|
124
|
+
#if !(defined(TRIO_COMPILER_SUPPORTS_C89) || defined(__cplusplus))
|
125
|
+
# define TRIO_COMPILER_ANCIENT
|
126
|
+
#endif
|
127
|
+
|
128
|
+
#if defined(TRIO_COMPILER_ANCIENT)
|
129
|
+
# define TRIO_CONST
|
130
|
+
# define TRIO_VOLATILE
|
131
|
+
# define TRIO_SIGNED
|
132
|
+
typedef double trio_long_double_t;
|
133
|
+
typedef char * trio_pointer_t;
|
134
|
+
# define TRIO_SUFFIX_LONG(x) x
|
135
|
+
# define TRIO_PROTO(x) ()
|
136
|
+
# define TRIO_NOARGS
|
137
|
+
# define TRIO_ARGS1(list,a1) list a1;
|
138
|
+
# define TRIO_ARGS2(list,a1,a2) list a1; a2;
|
139
|
+
# define TRIO_ARGS3(list,a1,a2,a3) list a1; a2; a3;
|
140
|
+
# define TRIO_ARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4;
|
141
|
+
# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5;
|
142
|
+
# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) list a1; a2; a3; a4; a5; a6;
|
143
|
+
# define TRIO_VARGS2(list,a1,a2) list a1; a2
|
144
|
+
# define TRIO_VARGS3(list,a1,a2,a3) list a1; a2; a3
|
145
|
+
# define TRIO_VARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4
|
146
|
+
# define TRIO_VARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5
|
147
|
+
# define TRIO_VA_DECL va_dcl
|
148
|
+
# define TRIO_VA_START(x,y) va_start(x)
|
149
|
+
# define TRIO_VA_END(x) va_end(x)
|
150
|
+
#else /* ANSI C */
|
151
|
+
# define TRIO_CONST const
|
152
|
+
# define TRIO_VOLATILE volatile
|
153
|
+
# define TRIO_SIGNED signed
|
154
|
+
typedef long double trio_long_double_t;
|
155
|
+
typedef void * trio_pointer_t;
|
156
|
+
# define TRIO_SUFFIX_LONG(x) x ## L
|
157
|
+
# define TRIO_PROTO(x) x
|
158
|
+
# define TRIO_NOARGS void
|
159
|
+
# define TRIO_ARGS1(list,a1) (a1)
|
160
|
+
# define TRIO_ARGS2(list,a1,a2) (a1,a2)
|
161
|
+
# define TRIO_ARGS3(list,a1,a2,a3) (a1,a2,a3)
|
162
|
+
# define TRIO_ARGS4(list,a1,a2,a3,a4) (a1,a2,a3,a4)
|
163
|
+
# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) (a1,a2,a3,a4,a5)
|
164
|
+
# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) (a1,a2,a3,a4,a5,a6)
|
165
|
+
# define TRIO_VARGS2 TRIO_ARGS2
|
166
|
+
# define TRIO_VARGS3 TRIO_ARGS3
|
167
|
+
# define TRIO_VARGS4 TRIO_ARGS4
|
168
|
+
# define TRIO_VARGS5 TRIO_ARGS5
|
169
|
+
# define TRIO_VA_DECL ...
|
170
|
+
# define TRIO_VA_START(x,y) va_start(x,y)
|
171
|
+
# define TRIO_VA_END(x) va_end(x)
|
172
|
+
#endif
|
173
|
+
|
174
|
+
#if defined(TRIO_COMPILER_SUPPORTS_C99) || defined(__cplusplus)
|
175
|
+
# define TRIO_INLINE inline
|
176
|
+
#elif defined(TRIO_COMPILER_GCC)
|
177
|
+
# define TRIO_INLINE __inline__
|
178
|
+
#elif defined(TRIO_COMPILER_MSVC)
|
179
|
+
# define TRIO_INLINE _inline
|
180
|
+
#elif defined(TRIO_COMPILER_BCB)
|
181
|
+
# define TRIO_INLINE __inline
|
182
|
+
#else
|
183
|
+
# define TRIO_INLINE
|
184
|
+
#endif
|
185
|
+
|
186
|
+
/*************************************************************************
|
187
|
+
* Workarounds
|
188
|
+
*/
|
189
|
+
|
190
|
+
#if defined(TRIO_PLATFORM_VMS)
|
191
|
+
/*
|
192
|
+
* Computations done with constants at compile time can trigger these
|
193
|
+
* even when compiling with IEEE enabled.
|
194
|
+
*/
|
195
|
+
# pragma message disable (UNDERFLOW, FLOATOVERFL)
|
196
|
+
|
197
|
+
# if (__CRTL_VER < 80000000)
|
198
|
+
/*
|
199
|
+
* Although the compiler supports C99 language constructs, the C
|
200
|
+
* run-time library does not contain all C99 functions.
|
201
|
+
*
|
202
|
+
* This was the case for 70300022. Update the 80000000 value when
|
203
|
+
* it has been accurately determined what version of the library
|
204
|
+
* supports C99.
|
205
|
+
*/
|
206
|
+
# if defined(TRIO_COMPILER_SUPPORTS_C99)
|
207
|
+
# undef TRIO_COMPILER_SUPPORTS_C99
|
208
|
+
# endif
|
209
|
+
# endif
|
210
|
+
#endif
|
211
|
+
|
212
|
+
/*
|
213
|
+
* Not all preprocessors supports the LL token.
|
214
|
+
*/
|
215
|
+
#if defined(TRIO_COMPILER_BCB)
|
216
|
+
#else
|
217
|
+
# define TRIO_COMPILER_SUPPORTS_LL
|
218
|
+
#endif
|
219
|
+
|
220
|
+
#endif /* TRIO_TRIODEF_H */
|