zeroc-ice 3.6.2 → 3.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/slice2rb +0 -0
- data/ext/Slice.cpp +32 -39
- data/ext/ice/cpp/include/Ice/BasicStream.h +15 -4
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +2 -2
- data/ext/ice/cpp/include/Ice/Communicator.h +2 -2
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +2 -2
- data/ext/ice/cpp/include/Ice/Connection.h +2 -2
- data/ext/ice/cpp/include/Ice/ConnectionF.h +2 -2
- data/ext/ice/cpp/include/Ice/Current.h +2 -2
- data/ext/ice/cpp/include/Ice/Endpoint.h +2 -2
- data/ext/ice/cpp/include/Ice/EndpointF.h +2 -2
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +2 -2
- data/ext/ice/cpp/include/Ice/FacetMap.h +2 -2
- data/ext/ice/cpp/include/Ice/Identity.h +2 -2
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +2 -2
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +2 -2
- data/ext/ice/cpp/include/Ice/Instrumentation.h +2 -2
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +2 -2
- data/ext/ice/cpp/include/Ice/LocalException.h +2 -2
- data/ext/ice/cpp/include/Ice/Locator.h +2 -2
- data/ext/ice/cpp/include/Ice/LocatorF.h +2 -2
- data/ext/ice/cpp/include/Ice/Logger.h +2 -2
- data/ext/ice/cpp/include/Ice/LoggerF.h +2 -2
- data/ext/ice/cpp/include/Ice/Metrics.h +2 -2
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +2 -2
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +2 -2
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +2 -2
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +2 -2
- data/ext/ice/cpp/include/Ice/Plugin.h +2 -2
- data/ext/ice/cpp/include/Ice/PluginF.h +2 -2
- data/ext/ice/cpp/include/Ice/Process.h +2 -2
- data/ext/ice/cpp/include/Ice/ProcessF.h +2 -2
- data/ext/ice/cpp/include/Ice/Properties.h +2 -2
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +2 -2
- data/ext/ice/cpp/include/Ice/PropertiesF.h +2 -2
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +2 -2
- data/ext/ice/cpp/include/Ice/Router.h +2 -2
- data/ext/ice/cpp/include/Ice/RouterF.h +2 -2
- data/ext/ice/cpp/include/Ice/ServantLocator.h +2 -2
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +2 -2
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +2 -2
- data/ext/ice/cpp/include/Ice/SlicedData.h +6 -0
- data/ext/ice/cpp/include/Ice/Version.h +2 -2
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +2 -2
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +2 -2
- data/ext/ice/cpp/include/IceUtil/Config.h +86 -26
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Time.h +3 -2
- data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/Util.h +5 -0
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +57 -42
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +2 -0
- data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +9 -5
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Incoming.cpp +11 -4
- data/ext/ice/cpp/src/Ice/Instance.cpp +4 -2
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -3
- data/ext/ice/cpp/src/Ice/LocalException.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Locator.cpp +2 -2
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +94 -5
- data/ext/ice/cpp/src/Ice/LoggerI.h +7 -1
- data/ext/ice/cpp/src/Ice/Metrics.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Network.cpp +23 -7
- data/ext/ice/cpp/src/Ice/Network.h +1 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Plugin.cpp +2 -2
- data/ext/ice/cpp/src/Ice/PluginF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +5 -0
- data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +4 -3
- data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +2 -2
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
- data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +19 -3
- data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
- data/ext/ice/cpp/src/Ice/WSConnector.h +2 -2
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +2 -2
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +2 -2
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +54 -39
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +5 -8
- data/ext/ice/cpp/src/IceSSL/Util.cpp +155 -4
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +8 -0
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +18 -5
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +5 -5
- data/ext/ice/cpp/src/IceUtil/Time.cpp +25 -17
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +5 -11
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +3 -3
- data/ext/ice/cpp/src/Slice/Python.cpp +14 -17
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +183 -48
- data/ext/ice/cpp/src/Slice/Ruby.cpp +6 -6
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -10
- data/ext/ice/cpp/src/Slice/Util.cpp +28 -3
- data/ext/ice/mcpp/Makefile +10 -6
- data/ext/ice/mcpp/configed.H +3 -0
- data/ext/ice/mcpp/main.c +2 -2
- data/ext/ice/mcpp/mcpp.gyp +6 -0
- data/ext/ice/mcpp/support.c +1 -1
- data/ext/ice/mcpp/system.H +6 -1
- data/ext/ice/mcpp/system.c +52 -15
- data/ice.gemspec +1 -1
- data/lib/Glacier2/Metrics.rb +1 -1
- data/lib/Glacier2/PermissionsVerifier.rb +1 -1
- data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
- data/lib/Glacier2/Router.rb +1 -1
- data/lib/Glacier2/RouterF.rb +1 -1
- data/lib/Glacier2/SSLInfo.rb +1 -1
- data/lib/Glacier2/Session.rb +1 -1
- data/lib/Ice/BuiltinSequences.rb +1 -1
- data/lib/Ice/Communicator.rb +1 -1
- data/lib/Ice/CommunicatorF.rb +1 -1
- data/lib/Ice/Connection.rb +1 -1
- data/lib/Ice/ConnectionF.rb +1 -1
- data/lib/Ice/Current.rb +1 -1
- data/lib/Ice/Endpoint.rb +1 -1
- data/lib/Ice/EndpointF.rb +1 -1
- data/lib/Ice/EndpointTypes.rb +1 -1
- data/lib/Ice/FacetMap.rb +1 -1
- data/lib/Ice/Identity.rb +1 -1
- data/lib/Ice/ImplicitContext.rb +1 -1
- data/lib/Ice/ImplicitContextF.rb +1 -1
- data/lib/Ice/Instrumentation.rb +1 -1
- data/lib/Ice/InstrumentationF.rb +1 -1
- data/lib/Ice/LocalException.rb +1 -1
- data/lib/Ice/Locator.rb +1 -1
- data/lib/Ice/LocatorF.rb +1 -1
- data/lib/Ice/Logger.rb +1 -1
- data/lib/Ice/LoggerF.rb +1 -1
- data/lib/Ice/Metrics.rb +1 -1
- data/lib/Ice/ObjectAdapterF.rb +1 -1
- data/lib/Ice/ObjectFactory.rb +1 -1
- data/lib/Ice/ObjectFactoryF.rb +1 -1
- data/lib/Ice/Plugin.rb +1 -1
- data/lib/Ice/PluginF.rb +1 -1
- data/lib/Ice/Process.rb +1 -1
- data/lib/Ice/ProcessF.rb +1 -1
- data/lib/Ice/Properties.rb +1 -1
- data/lib/Ice/PropertiesAdmin.rb +1 -1
- data/lib/Ice/PropertiesF.rb +1 -1
- data/lib/Ice/RemoteLogger.rb +1 -1
- data/lib/Ice/Router.rb +1 -1
- data/lib/Ice/RouterF.rb +1 -1
- data/lib/Ice/SliceChecksumDict.rb +1 -1
- data/lib/Ice/Version.rb +1 -1
- data/lib/IceBox/IceBox.rb +1 -1
- data/lib/IceGrid/Admin.rb +1 -1
- data/lib/IceGrid/Descriptor.rb +1 -1
- data/lib/IceGrid/Exception.rb +1 -1
- data/lib/IceGrid/FileParser.rb +1 -1
- data/lib/IceGrid/Locator.rb +1 -1
- data/lib/IceGrid/Observer.rb +1 -1
- data/lib/IceGrid/Query.rb +1 -1
- data/lib/IceGrid/Registry.rb +1 -1
- data/lib/IceGrid/Session.rb +1 -1
- data/lib/IceGrid/UserAccountMapper.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +1 -1
- data/lib/IcePatch2/FileServer.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +1 -1
- data/lib/IceStorm/Metrics.rb +1 -1
- data/slice/Glacier2/PermissionsVerifier.ice +0 -3
- data/slice/Glacier2/Session.ice +2 -9
- data/slice/Ice/Communicator.ice +3 -3
- data/slice/Ice/ImplicitContext.ice +4 -5
- data/slice/Ice/Instrumentation.ice +26 -26
- data/slice/Ice/LocalException.ice +1 -1
- data/slice/Ice/Locator.ice +5 -3
- data/slice/Ice/Metrics.ice +1 -1
- data/slice/Ice/ObjectFactory.ice +0 -2
- data/slice/Ice/RemoteLogger.ice +32 -32
- data/slice/Ice/Router.ice +3 -0
- data/slice/IceGrid/Session.ice +5 -9
- data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +7 -7
- data/slice/IcePatch2/FileServer.ice +28 -34
- metadata +30 -30
@@ -56,10 +56,10 @@ interruptedCallback(int /*signal*/)
|
|
56
56
|
}
|
57
57
|
|
58
58
|
void
|
59
|
-
usage(const
|
59
|
+
usage(const string& n)
|
60
60
|
{
|
61
61
|
getErrorStream() << "Usage: " << n << " [options] slice-files...\n";
|
62
|
-
getErrorStream() <<
|
62
|
+
getErrorStream() <<
|
63
63
|
"Options:\n"
|
64
64
|
"-h, --help Show this message.\n"
|
65
65
|
"-v, --version Display the Ice version.\n"
|
@@ -83,7 +83,7 @@ usage(const char* n)
|
|
83
83
|
}
|
84
84
|
|
85
85
|
int
|
86
|
-
Slice::Ruby::compile(
|
86
|
+
Slice::Ruby::compile(const vector<string>& argv)
|
87
87
|
{
|
88
88
|
IceUtilInternal::Options opts;
|
89
89
|
opts.addOpt("h", "help");
|
@@ -101,11 +101,11 @@ Slice::Ruby::compile(int argc, char* argv[])
|
|
101
101
|
opts.addOpt("", "underscore");
|
102
102
|
opts.addOpt("", "all");
|
103
103
|
opts.addOpt("", "checksum");
|
104
|
-
|
104
|
+
|
105
105
|
vector<string> args;
|
106
106
|
try
|
107
107
|
{
|
108
|
-
args = opts.parse(
|
108
|
+
args = opts.parse(argv);
|
109
109
|
}
|
110
110
|
catch(const IceUtilInternal::BadOptException& e)
|
111
111
|
{
|
@@ -222,7 +222,7 @@ Slice::Ruby::compile(int argc, char* argv[])
|
|
222
222
|
return EXIT_FAILURE;
|
223
223
|
}
|
224
224
|
|
225
|
-
if(!icecpp->printMakefileDependencies(out.os(), depend ? Preprocessor::Ruby : Preprocessor::SliceXML, includePaths,
|
225
|
+
if(!icecpp->printMakefileDependencies(out.os(), depend ? Preprocessor::Ruby : Preprocessor::SliceXML, includePaths,
|
226
226
|
"-D__SLICE2RB__"))
|
227
227
|
{
|
228
228
|
out.cleanup();
|
@@ -245,17 +245,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
|
|
245
245
|
//
|
246
246
|
ClassList allBases = p->allBases();
|
247
247
|
StringList ids;
|
248
|
-
#if defined(__IBMCPP__) && defined(NDEBUG)
|
249
|
-
//
|
250
|
-
// VisualAge C++ 6.0 does not see that ClassDef is a Contained,
|
251
|
-
// when inlining is on. The code below issues a warning: better
|
252
|
-
// than an error!
|
253
|
-
//
|
254
|
-
transform(allBases.begin(), allBases.end(), back_inserter(ids),
|
255
|
-
IceUtil::constMemFun<string,ClassDef>(&Contained::scoped));
|
256
|
-
#else
|
257
248
|
transform(allBases.begin(), allBases.end(), back_inserter(ids), IceUtil::constMemFun(&Contained::scoped));
|
258
|
-
#endif
|
259
249
|
StringList other;
|
260
250
|
other.push_back(scoped);
|
261
251
|
other.push_back("::Ice::Object");
|
@@ -10,6 +10,7 @@
|
|
10
10
|
#include <Slice/Util.h>
|
11
11
|
#include <IceUtil/FileUtil.h>
|
12
12
|
#include <IceUtil/StringUtil.h>
|
13
|
+
#include <IceUtil/StringConverter.h>
|
13
14
|
#include <climits>
|
14
15
|
|
15
16
|
#ifndef _MSC_VER
|
@@ -172,11 +173,11 @@ Slice::changeInclude(const string& path, const vector<string>& includePaths)
|
|
172
173
|
{
|
173
174
|
paths.push_back(canonicalPath);
|
174
175
|
}
|
175
|
-
|
176
|
+
|
176
177
|
for(vector<string>::const_iterator i = paths.begin(); i != paths.end(); ++i)
|
177
178
|
{
|
178
179
|
for(vector<string>::const_iterator j = includePaths.begin(); j != includePaths.end(); ++j)
|
179
|
-
{
|
180
|
+
{
|
180
181
|
if(i->compare(0, j->length(), *j) == 0)
|
181
182
|
{
|
182
183
|
string s = i->substr(j->length() + 1); // + 1 for the '/'
|
@@ -186,7 +187,7 @@ Slice::changeInclude(const string& path, const vector<string>& includePaths)
|
|
186
187
|
}
|
187
188
|
}
|
188
189
|
}
|
189
|
-
|
190
|
+
|
190
191
|
//
|
191
192
|
// If the path has been already shortened no need to test
|
192
193
|
// with canonical path.
|
@@ -430,3 +431,27 @@ Slice::DependOutputUtil::os()
|
|
430
431
|
{
|
431
432
|
return _file.empty() ? cout : _os;
|
432
433
|
}
|
434
|
+
|
435
|
+
#ifdef _WIN32
|
436
|
+
vector<string>
|
437
|
+
Slice::argvToArgs(int argc, wchar_t* argv[])
|
438
|
+
{
|
439
|
+
vector<string> args;
|
440
|
+
for(int i = 0; i < argc; i++)
|
441
|
+
{
|
442
|
+
args.push_back(IceUtil::wstringToString(argv[i]));
|
443
|
+
}
|
444
|
+
return args;
|
445
|
+
}
|
446
|
+
#else
|
447
|
+
vector<string>
|
448
|
+
Slice::argvToArgs(int argc, char* argv[])
|
449
|
+
{
|
450
|
+
vector<string> args;
|
451
|
+
for(int i = 0; i < argc; i++)
|
452
|
+
{
|
453
|
+
args.push_back(argv[i]);
|
454
|
+
}
|
455
|
+
return args;
|
456
|
+
}
|
457
|
+
#endif
|
data/ext/ice/mcpp/Makefile
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
#
|
5
5
|
# **********************************************************************
|
6
6
|
|
7
|
-
PREFIX
|
7
|
+
PREFIX ?= /opt/mcpp-2.7.2
|
8
8
|
|
9
9
|
CFLAGS += -O -w
|
10
10
|
|
@@ -18,9 +18,9 @@ ifeq ($(UNAME),Darwin)
|
|
18
18
|
endif
|
19
19
|
|
20
20
|
ifeq ($(UNAME),Linux)
|
21
|
-
|
21
|
+
CFLAGS += -fPIC
|
22
22
|
|
23
|
-
|
23
|
+
ifeq ($(MACHINE),i686)
|
24
24
|
CFLAGS += -m32
|
25
25
|
|
26
26
|
#
|
@@ -29,7 +29,7 @@ ifeq ($(UNAME),Linux)
|
|
29
29
|
ifeq ($(shell test -d /usr/lib/i386-linux-gnu && echo 0),0)
|
30
30
|
LIBDIR = lib/i386-linux-gnu
|
31
31
|
endif
|
32
|
-
|
32
|
+
else
|
33
33
|
#
|
34
34
|
# Ubuntu.
|
35
35
|
#
|
@@ -43,14 +43,18 @@ ifeq ($(UNAME),Linux)
|
|
43
43
|
ifeq ($(shell test -d /usr/lib64 && echo 0),0)
|
44
44
|
LIBDIR = lib64
|
45
45
|
endif
|
46
|
-
|
46
|
+
endif
|
47
|
+
endif
|
48
|
+
|
49
|
+
ifeq ($(UNAME),AIX)
|
50
|
+
CC ?= xlc_r
|
47
51
|
endif
|
48
52
|
|
49
53
|
#
|
50
54
|
# The default C compiler (cc) is undefined with MinGW
|
51
55
|
#
|
52
56
|
ifneq ($(findstring MINGW,$(UNAME)),)
|
53
|
-
|
57
|
+
CC ?= gcc
|
54
58
|
endif
|
55
59
|
|
56
60
|
OBJS = directive.o eval.o expand.o main.o mbchar.o support.o system.o
|
data/ext/ice/mcpp/configed.H
CHANGED
data/ext/ice/mcpp/main.c
CHANGED
@@ -307,7 +307,7 @@ int mcpp_lib_main
|
|
307
307
|
|
308
308
|
/* Open input file, "-" means stdin. */
|
309
309
|
if (in_file != NULL && ! str_eq( in_file, "-")) {
|
310
|
-
if ((fp_in =
|
310
|
+
if ((fp_in = mcpp_fopen( in_file, "r")) == NULL) {
|
311
311
|
mcpp_fprintf( ERR, "Can't open input file \"%s\".\n", in_file);
|
312
312
|
errors++;
|
313
313
|
goto fatal_error_exit;
|
@@ -317,7 +317,7 @@ int mcpp_lib_main
|
|
317
317
|
}
|
318
318
|
/* Open output file, "-" means stdout. */
|
319
319
|
if (out_file != NULL && ! str_eq( out_file, "-")) {
|
320
|
-
if ((fp_out =
|
320
|
+
if ((fp_out = mcpp_fopen( out_file, "w")) == NULL) {
|
321
321
|
mcpp_fprintf( ERR, "Can't open output file \"%s\".\n", out_file);
|
322
322
|
errors++;
|
323
323
|
goto fatal_error_exit;
|
data/ext/ice/mcpp/mcpp.gyp
CHANGED
data/ext/ice/mcpp/support.c
CHANGED
@@ -1033,7 +1033,7 @@ int get_ch( void)
|
|
1033
1033
|
cur_fullname = infile->full_fname;
|
1034
1034
|
cur_fname = infile->real_fname; /* Restore current fname*/
|
1035
1035
|
if (infile->pos != 0L) { /* Includer was closed */
|
1036
|
-
infile->fp =
|
1036
|
+
infile->fp = mcpp_fopen( cur_fullname, "r");
|
1037
1037
|
fseek( infile->fp, infile->pos, SEEK_SET);
|
1038
1038
|
} /* Re-open the includer and restore the file-position */
|
1039
1039
|
len = (int) (infile->bptr - infile->buffer);
|
data/ext/ice/mcpp/system.H
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
*/
|
71
71
|
|
72
72
|
/*
|
73
|
-
* The variable 'mcpp_mode' specifies the mode of preprocessing as one of
|
73
|
+
* The variable 'mcpp_mode' specifies the mode of preprocessing as one of
|
74
74
|
* OLD_PREP, KR, STD, or POST_STD.
|
75
75
|
* Those modes have many differences each other --
|
76
76
|
* i.e. handling of translation phases; handling of some
|
@@ -371,3 +371,8 @@ typedef long expr_t;
|
|
371
371
|
*/
|
372
372
|
#define CPLUS 1 /* 199711L for C++ Standard */
|
373
373
|
|
374
|
+
|
375
|
+
//
|
376
|
+
// helper methods to open files using UNICODE paths
|
377
|
+
//
|
378
|
+
FILE* mcpp_fopen(const char *filename, const char *mode);
|
data/ext/ice/mcpp/system.c
CHANGED
@@ -36,6 +36,7 @@
|
|
36
36
|
* 1. specify the constants in "configed.H" or "noconfig.H",
|
37
37
|
* 2. append the system-dependent routines in this file.
|
38
38
|
*/
|
39
|
+
|
39
40
|
#include "system.H"
|
40
41
|
#include "internal.H"
|
41
42
|
|
@@ -414,9 +415,9 @@ opt_search: ;
|
|
414
415
|
set_sys_dirs( set_cplus_dir);
|
415
416
|
|
416
417
|
if (mkdep_mf) { /* -MF overrides -MD */
|
417
|
-
mkdep_fp =
|
418
|
+
mkdep_fp = mcpp_fopen( mkdep_mf, "w");
|
418
419
|
} else if (mkdep_md) {
|
419
|
-
mkdep_fp =
|
420
|
+
mkdep_fp = mcpp_fopen( mkdep_md, "w");
|
420
421
|
}
|
421
422
|
if (mkdep_mq) /* -MQ overrides -MT */
|
422
423
|
mkdep_target = mkdep_mq;
|
@@ -580,7 +581,7 @@ static void def_a_macro(
|
|
580
581
|
skip_nl(); /* Clear the appended <newline> */
|
581
582
|
}
|
582
583
|
|
583
|
-
static void chk_opts(
|
584
|
+
static void chk_opts(
|
584
585
|
int sflag, /* Flag of Standard or post-Standard mode */
|
585
586
|
int trad /* -traditional (GCC only) */
|
586
587
|
)
|
@@ -835,7 +836,7 @@ static void set_sys_dirs(
|
|
835
836
|
set_a_dir( "/usr/local/include");
|
836
837
|
#endif
|
837
838
|
|
838
|
-
#ifdef C_INCLUDE_DIR1
|
839
|
+
#ifdef C_INCLUDE_DIR1
|
839
840
|
set_a_dir( C_INCLUDE_DIR1);
|
840
841
|
#endif
|
841
842
|
#ifdef C_INCLUDE_DIR2
|
@@ -882,7 +883,7 @@ static void set_a_dir(
|
|
882
883
|
incdir = (const char **) xrealloc( (void *) incdir
|
883
884
|
, sizeof (char *) * max_inc * 2);
|
884
885
|
incend = &incdir[ max_inc];
|
885
|
-
max_inc *= 2;
|
886
|
+
max_inc *= 2;
|
886
887
|
}
|
887
888
|
|
888
889
|
if (dirname == NULL)
|
@@ -1140,7 +1141,7 @@ static char * norm_path(
|
|
1140
1141
|
} else { /* Impossible */
|
1141
1142
|
break;
|
1142
1143
|
}
|
1143
|
-
} else { /* Impossible */
|
1144
|
+
} else { /* Impossible */
|
1144
1145
|
break;
|
1145
1146
|
}
|
1146
1147
|
}
|
@@ -1348,7 +1349,7 @@ void put_depend(
|
|
1348
1349
|
}
|
1349
1350
|
|
1350
1351
|
static char * md_init(
|
1351
|
-
const char * filename, /* The source file name */
|
1352
|
+
const char * filename, /* The source file name */
|
1352
1353
|
char * output /* Output to dependency file */
|
1353
1354
|
)
|
1354
1355
|
/*
|
@@ -1379,7 +1380,7 @@ static char * md_init(
|
|
1379
1380
|
if (! mkdep_fp) { /* Unless already opened by -MF, -MD, -MMD options */
|
1380
1381
|
if (mkdep & MD_FILE) {
|
1381
1382
|
strcpy( cp, "d");
|
1382
|
-
mkdep_fp =
|
1383
|
+
mkdep_fp = mcpp_fopen(prefix, "w");
|
1383
1384
|
} else {
|
1384
1385
|
mkdep_fp = fp_out; /* Output dependency line to normal output */
|
1385
1386
|
no_output++; /* Without normal output */
|
@@ -1617,7 +1618,7 @@ static int has_directory(
|
|
1617
1618
|
)
|
1618
1619
|
/*
|
1619
1620
|
* If a directory is found in the 'source' filename string (i.e. "includer"),
|
1620
|
-
* the directory part of the string is copied to 'directory' and
|
1621
|
+
* the directory part of the string is copied to 'directory' and
|
1621
1622
|
* has_directory() returns TRUE.
|
1622
1623
|
* Else, nothing is copied and it returns FALSE.
|
1623
1624
|
*/
|
@@ -1734,10 +1735,10 @@ static int open_file(
|
|
1734
1735
|
return FALSE;
|
1735
1736
|
if (included( fullname)) /* Once included */
|
1736
1737
|
goto true;
|
1737
|
-
|
1738
|
+
|
1738
1739
|
if ((max_open != 0 && max_open <= include_nest)
|
1739
1740
|
/* Exceed the known limit of open files */
|
1740
|
-
|| ((fp =
|
1741
|
+
|| ((fp = mcpp_fopen( fullname, "r")) == NULL && errno == EMFILE)) {
|
1741
1742
|
/* Reached the limit for the first time */
|
1742
1743
|
if (mcpp_debug & PATH) {
|
1743
1744
|
#if HOST_COMPILER == BORLANDC
|
@@ -1757,14 +1758,14 @@ static int open_file(
|
|
1757
1758
|
file->pos = ftell( file->fp);
|
1758
1759
|
fclose( file->fp);
|
1759
1760
|
/* In case of failure, re-open the includer */
|
1760
|
-
if ((fp =
|
1761
|
-
file->fp =
|
1761
|
+
if ((fp = mcpp_fopen( fullname, "r")) == NULL) {
|
1762
|
+
file->fp = mcpp_fopen( cur_fullname, "r");
|
1762
1763
|
fseek( file->fp, file->pos, SEEK_SET);
|
1763
1764
|
goto false;
|
1764
1765
|
}
|
1765
1766
|
if (max_open == 0) /* Remember the limit of the system */
|
1766
1767
|
max_open = include_nest;
|
1767
|
-
} else if (fp == NULL) /* No read permission */
|
1768
|
+
} else if (fp == NULL) /* No read permission */
|
1768
1769
|
goto false;
|
1769
1770
|
/* Truncate buffer of the includer to save memory */
|
1770
1771
|
len = (int) (file->bptr - file->buffer);
|
@@ -1821,7 +1822,7 @@ void add_file(
|
|
1821
1822
|
FILEINFO * file;
|
1822
1823
|
const char * too_many_include_nest =
|
1823
1824
|
"More than %.0s%ld nesting of #include"; /* _F_ _W4_ */
|
1824
|
-
|
1825
|
+
|
1825
1826
|
//
|
1826
1827
|
// When encoding is UTF-8, skip BOM if present.
|
1827
1828
|
//
|
@@ -2698,3 +2699,39 @@ void clear_filelist( void)
|
|
2698
2699
|
free( (void *) fnamelist);
|
2699
2700
|
free( (void *) once_list);
|
2700
2701
|
}
|
2702
|
+
|
2703
|
+
#ifdef _WIN32
|
2704
|
+
# include <Windows.h>
|
2705
|
+
#endif
|
2706
|
+
|
2707
|
+
FILE* mcpp_fopen(const char* filename, const char* mode)
|
2708
|
+
{
|
2709
|
+
#ifdef _WIN32
|
2710
|
+
FILE* f = 0;
|
2711
|
+
if(filename && mode)
|
2712
|
+
{
|
2713
|
+
int wfilenameLength = strlen(filename) + 1;
|
2714
|
+
wchar_t* wfilename = malloc(wfilenameLength * sizeof(wchar_t));
|
2715
|
+
if(wfilename)
|
2716
|
+
{
|
2717
|
+
if(MultiByteToWideChar(CP_UTF8, 0, filename, -1, wfilename, wfilenameLength))
|
2718
|
+
{
|
2719
|
+
int wmodeLength = strlen(mode) + 1;
|
2720
|
+
wchar_t* wmode = malloc(wmodeLength * sizeof(wchar_t));
|
2721
|
+
if(wmode)
|
2722
|
+
{
|
2723
|
+
if(MultiByteToWideChar(CP_UTF8, 0, mode, -1, wmode, wmodeLength))
|
2724
|
+
{
|
2725
|
+
_wfopen_s(&f, wfilename, wmode);
|
2726
|
+
}
|
2727
|
+
free(wmode);
|
2728
|
+
}
|
2729
|
+
}
|
2730
|
+
free(wfilename);
|
2731
|
+
}
|
2732
|
+
}
|
2733
|
+
return f;
|
2734
|
+
#else
|
2735
|
+
return fopen(filename, mode);
|
2736
|
+
#endif
|
2737
|
+
}
|
data/ice.gemspec
CHANGED
data/lib/Glacier2/Metrics.rb
CHANGED