zeroc-ice 3.6b1 → 3.6.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.
- checksums.yaml +4 -4
- data/{ext/ice/BZIP_LICENSE → BZIP2_LICENSE} +0 -0
- data/ICE_LICENSE +8 -14
- data/LICENSE +2 -1
- data/{ext/ice/MCPP_LICENSE → MCPP_LICENSE} +2 -9
- data/bin/slice2rb +1 -1
- data/ext/Communicator.cpp +1 -1
- data/ext/Communicator.h +1 -1
- data/ext/Config.h +1 -22
- data/ext/Connection.cpp +125 -13
- data/ext/Connection.h +1 -1
- data/ext/Endpoint.cpp +62 -3
- data/ext/Endpoint.h +1 -1
- data/ext/ImplicitContext.cpp +1 -1
- data/ext/ImplicitContext.h +1 -1
- data/ext/Init.cpp +8 -1
- data/ext/Logger.cpp +1 -1
- data/ext/Logger.h +1 -1
- data/ext/ObjectFactory.cpp +1 -1
- data/ext/ObjectFactory.h +1 -1
- data/ext/Operation.cpp +1 -1
- data/ext/Operation.h +1 -1
- data/ext/Properties.cpp +1 -1
- data/ext/Properties.h +1 -1
- data/ext/Proxy.cpp +1 -1
- data/ext/Proxy.h +1 -1
- data/ext/Slice.cpp +1 -1
- data/ext/Slice.h +1 -1
- data/ext/Types.cpp +65 -17
- data/ext/Types.h +4 -1
- data/ext/Util.cpp +49 -58
- data/ext/Util.h +1 -1
- data/ext/extconf.rb +17 -15
- data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
- data/ext/ice/cpp/include/Ice/Application.h +1 -1
- data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
- data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
- data/ext/ice/cpp/include/Ice/BasicStream.h +1 -1
- data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +52 -0
- data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +25 -0
- data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
- data/ext/ice/cpp/include/Ice/BuiltinSequences.h +12 -4
- data/ext/ice/cpp/include/Ice/Communicator.h +12 -4
- data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/CommunicatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/Config.h +13 -8
- data/ext/ice/cpp/include/Ice/Connection.h +41 -16
- data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/ConnectionF.h +12 -4
- data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
- data/ext/ice/cpp/include/Ice/Current.h +12 -4
- data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
- data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
- data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
- data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
- data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
- data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
- data/ext/ice/cpp/include/Ice/Endpoint.h +16 -6
- data/ext/ice/cpp/include/Ice/EndpointF.h +12 -4
- data/ext/ice/cpp/include/Ice/EndpointTypes.h +12 -4
- data/ext/ice/cpp/include/Ice/Exception.h +3 -3
- data/ext/ice/cpp/include/Ice/FacetMap.h +12 -4
- data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
- data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
- data/ext/ice/cpp/include/Ice/Format.h +1 -1
- data/ext/ice/cpp/include/Ice/Functional.h +1 -1
- data/ext/ice/cpp/include/Ice/GCObject.h +5 -1
- data/ext/ice/cpp/include/Ice/Handle.h +1 -1
- data/ext/ice/cpp/include/Ice/Ice.h +4 -3
- data/ext/ice/cpp/include/Ice/Identity.h +13 -5
- data/ext/ice/cpp/include/Ice/ImplicitContext.h +12 -4
- data/ext/ice/cpp/include/Ice/ImplicitContextF.h +12 -4
- data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
- data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
- data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
- data/ext/ice/cpp/include/Ice/Initialize.h +4 -2
- data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
- data/ext/ice/cpp/include/Ice/Instrumentation.h +12 -4
- data/ext/ice/cpp/include/Ice/InstrumentationF.h +12 -4
- data/ext/ice/cpp/include/Ice/LocalException.h +12 -4
- data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
- data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/Locator.h +137 -129
- data/ext/ice/cpp/include/Ice/LocatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/Logger.h +12 -4
- data/ext/ice/cpp/include/Ice/LoggerF.h +12 -4
- data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
- data/ext/ice/cpp/include/Ice/Metrics.h +144 -136
- data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
- data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
- data/ext/ice/cpp/include/Ice/MetricsObserverI.h +35 -26
- data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
- data/ext/ice/cpp/include/Ice/Object.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectAdapter.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObjectFactory.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +12 -4
- data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
- data/ext/ice/cpp/include/Ice/Outgoing.h +67 -39
- data/ext/ice/cpp/include/Ice/OutgoingAsync.h +31 -34
- data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +4 -4
- data/ext/ice/cpp/include/Ice/Plugin.h +12 -4
- data/ext/ice/cpp/include/Ice/PluginF.h +12 -4
- data/ext/ice/cpp/include/Ice/Process.h +36 -28
- data/ext/ice/cpp/include/Ice/ProcessF.h +12 -4
- data/ext/ice/cpp/include/Ice/Properties.h +12 -4
- data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +86 -78
- data/ext/ice/cpp/include/Ice/PropertiesF.h +12 -4
- data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
- data/ext/ice/cpp/include/Ice/Proxy.h +6 -2
- data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
- data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
- data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
- data/ext/ice/cpp/include/Ice/RemoteLogger.h +137 -129
- data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
- data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Router.h +37 -29
- data/ext/ice/cpp/include/Ice/RouterF.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantLocator.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantLocatorF.h +12 -4
- data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
- data/ext/ice/cpp/include/Ice/Service.h +1 -1
- data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +12 -4
- data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
- data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
- data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
- data/ext/ice/cpp/include/Ice/Stream.h +3 -5
- data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
- data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
- data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
- data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
- data/ext/ice/cpp/include/Ice/Version.h +14 -6
- data/ext/ice/cpp/include/IceSSL/Config.h +19 -1
- data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +61 -7
- data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +52 -5
- data/ext/ice/cpp/include/IceSSL/IceSSL.h +2 -2
- data/ext/ice/cpp/include/IceSSL/Plugin.h +32 -26
- data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Atomic.h +186 -0
- data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Config.h +31 -20
- data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
- data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
- data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +9 -2
- data/ext/ice/cpp/include/IceUtil/Exception.h +4 -3
- data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
- data/ext/ice/cpp/include/IceUtil/IceUtil.h +2 -2
- data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
- data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
- data/ext/ice/cpp/include/IceUtil/OutputUtil.h +8 -11
- data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
- data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +5 -1
- data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
- data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
- data/ext/ice/cpp/include/IceUtil/SHA1.h +8 -26
- data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -5
- data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Shared.h +3 -37
- data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
- data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
- data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
- data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
- data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +7 -6
- data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
- data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
- data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
- data/ext/ice/cpp/include/Slice/JavaUtil.h +3 -1
- data/ext/ice/cpp/include/Slice/ObjCUtil.h +127 -0
- data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
- data/ext/ice/cpp/include/Slice/Parser.h +18 -12
- data/ext/ice/cpp/include/Slice/Preprocessor.h +6 -4
- 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 +20 -2
- data/ext/ice/cpp/src/Ice/ACM.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ACM.h +1 -1
- data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
- data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Base64.h +1 -1
- data/ext/ice/cpp/src/Ice/BasicStream.cpp +7 -5
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +227 -0
- data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +59 -0
- data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -3
- data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +10 -4
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +82 -282
- data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +8 -21
- data/ext/ice/cpp/src/Ice/Communicator.cpp +11 -5
- data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +6 -6
- data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +42 -180
- data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +10 -19
- data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +25 -0
- data/ext/ice/cpp/src/Ice/Connection.cpp +17 -11
- data/ext/ice/cpp/src/Ice/ConnectionF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +137 -51
- data/ext/ice/cpp/src/Ice/ConnectionFactory.h +18 -8
- data/ext/ice/cpp/src/Ice/ConnectionI.cpp +105 -391
- data/ext/ice/cpp/src/Ice/ConnectionI.h +25 -23
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +5 -29
- data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +3 -8
- data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Connector.h +1 -1
- data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
- data/ext/ice/cpp/src/Ice/Current.cpp +10 -4
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
- data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
- data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +1 -1
- data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Endpoint.cpp +17 -11
- data/ext/ice/cpp/src/Ice/EndpointF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +19 -1
- data/ext/ice/cpp/src/Ice/EndpointFactory.h +13 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EndpointI.h +33 -1
- data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
- data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +10 -4
- data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/EventHandler.h +4 -1
- data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
- data/ext/ice/cpp/src/Ice/Exception.cpp +20 -11
- data/ext/ice/cpp/src/Ice/FacetMap.cpp +10 -4
- data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
- data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -2
- data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
- data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
- data/ext/ice/cpp/src/Ice/HttpParser.cpp +27 -15
- data/ext/ice/cpp/src/Ice/HttpParser.h +4 -6
- data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +7 -1
- data/ext/ice/cpp/src/Ice/IPEndpointI.h +2 -1
- data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
- data/ext/ice/cpp/src/Ice/Identity.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
- data/ext/ice/cpp/src/Ice/Incoming.cpp +22 -20
- data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
- data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
- data/ext/ice/cpp/src/Ice/Initialize.cpp +31 -5
- data/ext/ice/cpp/src/Ice/Instance.cpp +102 -59
- data/ext/ice/cpp/src/Ice/Instance.h +28 -2
- data/ext/ice/cpp/src/Ice/Instrumentation.cpp +20 -14
- data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
- data/ext/ice/cpp/src/Ice/LocalException.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Locator.cpp +83 -77
- data/ext/ice/cpp/src/Ice/LocatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +77 -69
- data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
- data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Logger.cpp +11 -5
- data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
- data/ext/ice/cpp/src/Ice/LoggerF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/LoggerI.cpp +10 -8
- data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
- data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +2 -2
- data/ext/ice/cpp/src/Ice/Metrics.cpp +122 -116
- data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Network.cpp +63 -19
- data/ext/ice/cpp/src/Ice/Network.h +10 -3
- data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
- data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
- data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +9 -9
- data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +2 -2
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +3 -3
- data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -5
- data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +9 -10
- data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
- data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +6 -5
- data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
- data/ext/ice/cpp/src/Ice/Outgoing.cpp +209 -254
- data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +120 -106
- data/ext/ice/cpp/src/Ice/Plugin.cpp +12 -6
- data/ext/ice/cpp/src/Ice/PluginF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +21 -2
- data/ext/ice/cpp/src/Ice/Process.cpp +25 -19
- data/ext/ice/cpp/src/Ice/ProcessF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/Properties.cpp +11 -5
- data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +39 -33
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
- data/ext/ice/cpp/src/Ice/PropertyNames.cpp +12 -8
- data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
- data/ext/ice/cpp/src/Ice/Protocol.cpp +7 -7
- data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +9 -6
- data/ext/ice/cpp/src/Ice/ProtocolInstance.h +25 -7
- data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
- data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
- data/ext/ice/cpp/src/Ice/Proxy.cpp +32 -13
- data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
- data/ext/ice/cpp/src/Ice/Reference.cpp +101 -86
- data/ext/ice/cpp/src/Ice/Reference.h +16 -9
- data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
- data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
- data/ext/ice/cpp/src/Ice/RegisterPlugins.cpp +28 -0
- data/ext/ice/cpp/src/Ice/RegisterPlugins.h +25 -0
- data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +92 -86
- data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/RequestHandler.h +4 -8
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +24 -16
- data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +5 -4
- data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
- data/ext/ice/cpp/src/Ice/ResponseHandler.h +3 -3
- data/ext/ice/cpp/src/Ice/RetryQueue.cpp +16 -5
- data/ext/ice/cpp/src/Ice/RetryQueue.h +3 -2
- data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
- data/ext/ice/cpp/src/Ice/Router.cpp +27 -21
- data/ext/ice/cpp/src/Ice/RouterF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
- data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
- data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
- data/ext/ice/cpp/src/Ice/Selector.cpp +480 -1
- data/ext/ice/cpp/src/Ice/Selector.h +130 -1
- data/ext/ice/cpp/src/Ice/ServantLocator.cpp +11 -5
- data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +10 -4
- data/ext/ice/cpp/src/Ice/ServantManager.cpp +29 -23
- data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
- data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +10 -4
- data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
- data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
- data/ext/ice/cpp/src/Ice/StreamSocket.cpp +30 -22
- data/ext/ice/cpp/src/Ice/StreamSocket.h +7 -4
- data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
- data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +8 -8
- data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +21 -38
- data/ext/ice/cpp/src/Ice/TcpEndpointI.h +5 -6
- data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +29 -4
- data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -2
- data/ext/ice/cpp/src/Ice/ThreadPool.cpp +2 -2
- data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
- data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
- data/ext/ice/cpp/src/Ice/TraceUtil.cpp +16 -7
- data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
- data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
- data/ext/ice/cpp/src/Ice/Transceiver.h +2 -1
- data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +13 -39
- data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -5
- data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +46 -10
- data/ext/ice/cpp/src/Ice/UdpTransceiver.h +3 -2
- data/ext/ice/cpp/src/Ice/Version.cpp +12 -6
- data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
- data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
- data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
- data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
- data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +6 -38
- data/ext/ice/cpp/src/Ice/WSEndpoint.h +12 -1
- data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +31 -35
- data/ext/ice/cpp/src/Ice/WSTransceiver.h +13 -1
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +66 -60
- data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +106 -100
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
- data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
- data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +76 -36
- data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
- data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +19 -6
- data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +452 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +732 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +520 -0
- data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +36 -0
- data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +8 -8
- data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/Certificate.cpp +49 -47
- data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +13 -5
- data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +10 -38
- data/ext/ice/cpp/src/IceSSL/EndpointI.h +4 -3
- data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +13 -5
- data/ext/ice/cpp/src/IceSSL/Instance.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
- data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +107 -111
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +130 -47
- data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +11 -3
- data/ext/ice/cpp/src/IceSSL/PluginI.cpp +8 -14
- data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
- data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
- data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +238 -156
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +93 -66
- data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -3
- data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -2
- data/ext/ice/cpp/src/IceSSL/SSLEngine.h +32 -35
- data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +244 -360
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +59 -29
- data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +8 -4
- data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
- data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
- data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
- data/ext/ice/cpp/src/IceSSL/Util.cpp +427 -620
- data/ext/ice/cpp/src/IceSSL/Util.h +72 -15
- data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
- data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
- data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Exception.cpp +105 -96
- data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -1
- data/ext/ice/cpp/src/IceUtil/FileUtil.h +9 -1
- data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +12 -25
- data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/SHA1.cpp +72 -10
- data/ext/ice/cpp/src/IceUtil/Shared.cpp +3 -132
- data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
- data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Thread.cpp +16 -1
- data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
- data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
- data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +62 -55
- data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
- data/ext/ice/cpp/src/Slice/CsUtil.cpp +8 -29
- data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
- data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
- data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
- data/ext/ice/cpp/src/Slice/JavaUtil.cpp +145 -172
- data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
- data/ext/ice/cpp/src/Slice/MD5.h +1 -1
- data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +1310 -0
- data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Parser.cpp +65 -187
- data/ext/ice/cpp/src/Slice/Preprocessor.cpp +61 -9
- data/ext/ice/cpp/src/Slice/Python.cpp +36 -3
- data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
- data/ext/ice/cpp/src/Slice/Ruby.cpp +34 -3
- data/ext/ice/cpp/src/Slice/RubyUtil.cpp +8 -7
- data/ext/ice/cpp/src/Slice/Scanner.cpp +1 -1
- data/ext/ice/cpp/src/Slice/Util.cpp +137 -30
- data/ext/ice/mcpp/LICENSE +29 -0
- data/ext/ice/mcpp/Makefile +60 -0
- data/ext/ice/mcpp/Makefile.mak +46 -0
- data/ext/ice/mcpp/README.md +30 -0
- data/ext/ice/mcpp/config.h +89 -0
- data/ext/ice/mcpp/configed.H +1 -146
- data/ext/ice/mcpp/directive.c +115 -410
- data/ext/ice/mcpp/eval.c +38 -377
- data/ext/ice/mcpp/expand.c +155 -852
- data/ext/ice/mcpp/internal.H +10 -44
- data/ext/ice/mcpp/main.c +6 -345
- data/ext/ice/mcpp/mbchar.c +17 -654
- data/ext/ice/mcpp/mcpp.gyp +62 -0
- data/ext/ice/mcpp/support.c +116 -943
- data/ext/ice/mcpp/system.H +0 -23
- data/ext/ice/mcpp/system.c +81 -2321
- data/ice.gemspec +3 -4
- data/lib/Glacier2.rb +1 -1
- data/lib/Glacier2/Metrics.rb +2 -2
- data/lib/Glacier2/PermissionsVerifier.rb +2 -2
- data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
- data/lib/Glacier2/Router.rb +2 -2
- data/lib/Glacier2/RouterF.rb +2 -2
- data/lib/Glacier2/SSLInfo.rb +2 -2
- data/lib/Glacier2/Session.rb +2 -2
- data/lib/Ice.rb +1 -1
- data/lib/Ice/BuiltinSequences.rb +2 -2
- data/lib/Ice/Communicator.rb +2 -2
- data/lib/Ice/CommunicatorF.rb +2 -2
- data/lib/Ice/Connection.rb +26 -14
- data/lib/Ice/ConnectionF.rb +2 -2
- data/lib/Ice/Current.rb +2 -2
- data/lib/Ice/Endpoint.rb +4 -2
- data/lib/Ice/EndpointF.rb +2 -2
- data/lib/Ice/EndpointTypes.rb +2 -2
- data/lib/Ice/FacetMap.rb +2 -2
- data/lib/Ice/Identity.rb +2 -2
- data/lib/Ice/ImplicitContext.rb +2 -2
- data/lib/Ice/ImplicitContextF.rb +2 -2
- data/lib/Ice/Instrumentation.rb +2 -2
- data/lib/Ice/InstrumentationF.rb +2 -2
- data/lib/Ice/LocalException.rb +2 -2
- data/lib/Ice/Locator.rb +2 -2
- data/lib/Ice/LocatorF.rb +2 -2
- data/lib/Ice/Logger.rb +2 -2
- data/lib/Ice/LoggerF.rb +2 -2
- data/lib/Ice/Metrics.rb +2 -2
- data/lib/Ice/ObjectAdapterF.rb +2 -2
- data/lib/Ice/ObjectFactory.rb +2 -2
- data/lib/Ice/ObjectFactoryF.rb +2 -2
- data/lib/Ice/Plugin.rb +2 -2
- data/lib/Ice/PluginF.rb +2 -2
- data/lib/Ice/Process.rb +2 -2
- data/lib/Ice/ProcessF.rb +2 -2
- data/lib/Ice/Properties.rb +2 -2
- data/lib/Ice/PropertiesAdmin.rb +2 -2
- data/lib/Ice/PropertiesF.rb +2 -2
- data/lib/Ice/Router.rb +2 -2
- data/lib/Ice/RouterF.rb +2 -2
- data/lib/Ice/SliceChecksumDict.rb +2 -2
- data/lib/Ice/Version.rb +2 -2
- data/lib/IceBox.rb +1 -1
- data/lib/IceBox/IceBox.rb +2 -2
- data/lib/IceGrid.rb +1 -1
- data/lib/IceGrid/Admin.rb +2 -2
- data/lib/IceGrid/Descriptor.rb +2 -2
- data/lib/IceGrid/Exception.rb +2 -2
- data/lib/IceGrid/FileParser.rb +2 -2
- data/lib/IceGrid/Locator.rb +2 -2
- data/lib/IceGrid/Observer.rb +2 -2
- data/lib/IceGrid/Query.rb +2 -2
- data/lib/IceGrid/Registry.rb +2 -2
- data/lib/IceGrid/Session.rb +2 -2
- data/lib/IceGrid/UserAccountMapper.rb +2 -2
- data/lib/IcePatch2.rb +1 -1
- data/lib/IcePatch2/FileInfo.rb +52 -2
- data/lib/IcePatch2/FileServer.rb +33 -4
- data/lib/IceStorm.rb +1 -1
- data/lib/IceStorm/IceStorm.rb +2 -2
- data/lib/IceStorm/Metrics.rb +2 -2
- data/slice/Freeze/BackgroundSaveEvictor.ice +2 -2
- data/slice/Freeze/CatalogData.ice +2 -2
- data/slice/Freeze/Connection.ice +2 -2
- data/slice/Freeze/ConnectionF.ice +2 -2
- data/slice/Freeze/DB.ice +2 -2
- data/slice/Freeze/Evictor.ice +2 -2
- data/slice/Freeze/EvictorF.ice +2 -2
- data/slice/Freeze/EvictorStorage.ice +2 -2
- data/slice/Freeze/Exception.ice +2 -2
- data/slice/Freeze/Transaction.ice +2 -2
- data/slice/Freeze/TransactionalEvictor.ice +2 -2
- data/slice/Glacier2/Metrics.ice +7 -6
- data/slice/Glacier2/PermissionsVerifier.ice +4 -3
- data/slice/Glacier2/PermissionsVerifierF.ice +3 -2
- data/slice/Glacier2/Router.ice +4 -3
- data/slice/Glacier2/RouterF.ice +3 -2
- data/slice/Glacier2/SSLInfo.ice +3 -2
- data/slice/Glacier2/Session.ice +12 -11
- data/slice/Ice/BuiltinSequences.ice +4 -3
- data/slice/Ice/Communicator.ice +22 -25
- data/slice/Ice/CommunicatorF.ice +3 -2
- data/slice/Ice/Connection.ice +39 -11
- data/slice/Ice/ConnectionF.ice +3 -2
- data/slice/Ice/Current.ice +4 -3
- data/slice/Ice/Endpoint.ice +11 -3
- data/slice/Ice/EndpointF.ice +3 -2
- data/slice/Ice/EndpointTypes.ice +3 -2
- data/slice/Ice/FacetMap.ice +3 -2
- data/slice/Ice/Identity.ice +3 -2
- data/slice/Ice/ImplicitContext.ice +3 -2
- data/slice/Ice/ImplicitContextF.ice +3 -2
- data/slice/Ice/Instrumentation.ice +4 -2
- data/slice/Ice/InstrumentationF.ice +4 -2
- data/slice/Ice/LocalException.ice +29 -10
- data/slice/Ice/Locator.ice +5 -3
- data/slice/Ice/LocatorF.ice +3 -2
- data/slice/Ice/Logger.ice +3 -2
- data/slice/Ice/LoggerF.ice +3 -2
- data/slice/Ice/Metrics.ice +15 -14
- data/slice/Ice/ObjectAdapter.ice +5 -4
- data/slice/Ice/ObjectAdapterF.ice +3 -2
- data/slice/Ice/ObjectFactory.ice +3 -2
- data/slice/Ice/ObjectFactoryF.ice +3 -2
- data/slice/Ice/Plugin.ice +3 -2
- data/slice/Ice/PluginF.ice +3 -2
- data/slice/Ice/Process.ice +3 -2
- data/slice/Ice/ProcessF.ice +3 -2
- data/slice/Ice/Properties.ice +3 -2
- data/slice/Ice/PropertiesAdmin.ice +3 -2
- data/slice/Ice/PropertiesF.ice +3 -2
- data/slice/Ice/RemoteLogger.ice +3 -2
- data/slice/Ice/Router.ice +3 -2
- data/slice/Ice/RouterF.ice +3 -2
- data/slice/Ice/ServantLocator.ice +3 -2
- data/slice/Ice/ServantLocatorF.ice +3 -2
- data/slice/Ice/SliceChecksumDict.ice +3 -2
- data/slice/Ice/Version.ice +3 -2
- data/slice/IceBox/IceBox.ice +2 -2
- data/slice/IceDiscovery/IceDiscovery.ice +2 -2
- data/slice/IceGrid/Admin.ice +49 -48
- data/slice/IceGrid/Descriptor.ice +3 -2
- data/slice/IceGrid/Exception.ice +6 -5
- data/slice/IceGrid/FileParser.ice +4 -3
- data/slice/IceGrid/Locator.ice +4 -3
- data/slice/IceGrid/Observer.ice +28 -27
- data/slice/IceGrid/PluginFacade.ice +3 -2
- data/slice/IceGrid/Query.ice +3 -2
- data/slice/IceGrid/Registry.ice +4 -3
- data/slice/IceGrid/Session.ice +9 -8
- data/slice/IceGrid/UserAccountMapper.ice +4 -3
- data/slice/{IceGrid/Discovery.ice → IceLocatorDiscovery/IceLocatorDiscovery.ice} +12 -14
- data/slice/IcePatch2/FileInfo.ice +31 -2
- data/slice/IcePatch2/FileServer.ice +63 -5
- data/slice/IceSSL/ConnectionInfo.ice +17 -2
- data/slice/IceSSL/EndpointInfo.ice +21 -3
- data/slice/IceStorm/IceStorm.ice +3 -2
- data/slice/IceStorm/Metrics.ice +4 -3
- metadata +27 -23
- data/ext/ice/cpp/include/Ice/Makefile +0 -26
- data/ext/ice/cpp/include/IceSSL/Makefile +0 -26
- data/ext/ice/cpp/include/IceUtil/Makefile +0 -26
- data/ext/ice/cpp/include/Slice/Makefile +0 -26
- data/ext/ice/cpp/src/Ice/Application.cpp +0 -760
- data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +0 -53
- data/ext/ice/cpp/src/Ice/Makefile +0 -190
- data/ext/ice/cpp/src/Ice/Service.cpp +0 -1897
- data/ext/ice/cpp/src/IceDiscovery/Makefile +0 -61
- data/ext/ice/cpp/src/IceSSL/Makefile +0 -82
- data/ext/ice/cpp/src/IceUtil/Makefile +0 -68
- data/ext/ice/cpp/src/Slice/Makefile +0 -65
- data/ext/ice/mcpp/config.h.Darwin +0 -227
- data/ext/ice/mcpp/config.h.Linux +0 -227
- data/ext/ice/mcpp/config.h.MINGW +0 -7
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
'targets': [
|
|
3
|
+
{
|
|
4
|
+
'target_name': 'mcpp',
|
|
5
|
+
'product_prefix' : 'lib',
|
|
6
|
+
'type': 'static_library',
|
|
7
|
+
'sources': [
|
|
8
|
+
'directive.c',
|
|
9
|
+
'eval.c',
|
|
10
|
+
'expand.c',
|
|
11
|
+
'main.c',
|
|
12
|
+
'mbchar.c',
|
|
13
|
+
'support.c',
|
|
14
|
+
'system.c',
|
|
15
|
+
],
|
|
16
|
+
'include_dirs' : ['.'],
|
|
17
|
+
'defines' : [
|
|
18
|
+
'HAVE_CONFIG_H',
|
|
19
|
+
'MCPP_LIB=1'
|
|
20
|
+
],
|
|
21
|
+
'configurations': {
|
|
22
|
+
'Release': {
|
|
23
|
+
'msvs_settings': {
|
|
24
|
+
'VCCLCompilerTool': {
|
|
25
|
+
'RuntimeLibrary': '2',
|
|
26
|
+
'ExceptionHandling': '1',
|
|
27
|
+
'RuntimeTypeInfo' : 'true'
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
'msvs_disabled_warnings': [
|
|
31
|
+
4018,
|
|
32
|
+
4090,
|
|
33
|
+
4101,
|
|
34
|
+
4102,
|
|
35
|
+
4133,
|
|
36
|
+
4146,
|
|
37
|
+
4244,
|
|
38
|
+
4267
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
'conditions': [
|
|
43
|
+
['OS=="mac"', {
|
|
44
|
+
'xcode_settings': {
|
|
45
|
+
"MACOSX_DEPLOYMENT_TARGET":"10.9",
|
|
46
|
+
'OTHER_CFLAGS': [
|
|
47
|
+
'-fno-common',
|
|
48
|
+
'-stdlib=libstdc++',
|
|
49
|
+
'-w'
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}],
|
|
53
|
+
['OS=="linux"', {
|
|
54
|
+
'cflags' : [
|
|
55
|
+
'-fPIC',
|
|
56
|
+
'-w'
|
|
57
|
+
]
|
|
58
|
+
}]
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
data/ext/ice/mcpp/support.c
CHANGED
|
@@ -50,9 +50,6 @@
|
|
|
50
50
|
* returns the advanced output pointer.
|
|
51
51
|
* get_ch() Reads the next byte from the current input stream, handling
|
|
52
52
|
* end of (macro/file) input and embedded comments appropriately.
|
|
53
|
-
* cnv_trigraph() Maps trigraph sequence to C character.
|
|
54
|
-
* cnv_digraph() Maps digraph sequence to C character.
|
|
55
|
-
* id_operator() See whether the identifier is an operator in C++.
|
|
56
53
|
* unget_ch() Pushs last gotten character back on the input stream.
|
|
57
54
|
* unget_string() Pushs sequence on the input stream.
|
|
58
55
|
* save_string() Saves a string in malloc() memory.
|
|
@@ -70,23 +67,13 @@
|
|
|
70
67
|
* buffer.
|
|
71
68
|
*/
|
|
72
69
|
|
|
73
|
-
#if PREPROCESSED
|
|
74
|
-
#include "mcpp.H"
|
|
75
|
-
#else
|
|
76
70
|
#include "system.H"
|
|
77
71
|
#include "internal.H"
|
|
78
|
-
#endif
|
|
79
72
|
|
|
80
73
|
static void scan_id( int c);
|
|
81
74
|
/* Scan an identifier */
|
|
82
75
|
static char * scan_number( int c, char * out, char * out_end);
|
|
83
76
|
/* Scan a preprocessing number */
|
|
84
|
-
static char * scan_number_prestd( int c, char * out, char * out_end);
|
|
85
|
-
/* scan_number() for pre-Standard mode */
|
|
86
|
-
#if OK_UCN
|
|
87
|
-
static char * scan_ucn( int cnt, char * out);
|
|
88
|
-
/* Scan an UCN sequence */
|
|
89
|
-
#endif
|
|
90
77
|
static char * scan_op( int c, char * out);
|
|
91
78
|
/* Scan an operator or a punctuator */
|
|
92
79
|
static char * parse_line( void);
|
|
@@ -100,10 +87,6 @@ static char * at_eof( int in_comment);
|
|
|
100
87
|
static void do_msg( const char * severity, const char * format
|
|
101
88
|
, const char * arg1, long arg2, const char * arg3);
|
|
102
89
|
/* Putout diagnostic message */
|
|
103
|
-
static char * cat_line( int del_bsl);
|
|
104
|
-
/* Splice the line */
|
|
105
|
-
static void put_line( char * out, FILE * fp);
|
|
106
|
-
/* Put out a logical line */
|
|
107
90
|
static void dump_token( int token_type, const char * cp);
|
|
108
91
|
/* Dump a token and its type */
|
|
109
92
|
|
|
@@ -133,7 +116,6 @@ static CAT_LINE bsl_cat_line;
|
|
|
133
116
|
static CAT_LINE com_cat_line;
|
|
134
117
|
/* Datum on the last catenated line by a line-crossing comment */
|
|
135
118
|
|
|
136
|
-
#if MCPP_LIB
|
|
137
119
|
static int use_mem_buffers = FALSE;
|
|
138
120
|
|
|
139
121
|
void init_support( void)
|
|
@@ -174,11 +156,6 @@ void mcpp_use_mem_buffers(
|
|
|
174
156
|
}
|
|
175
157
|
}
|
|
176
158
|
|
|
177
|
-
int using_mem_buffers( void)
|
|
178
|
-
{
|
|
179
|
-
return use_mem_buffers;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
159
|
#define BUF_INCR_SIZE (NWORK * 2)
|
|
183
160
|
#define MAX( a, b) (((a) > (b)) ? (a) : (b))
|
|
184
161
|
|
|
@@ -247,7 +224,6 @@ char * mcpp_get_mem_buffer(
|
|
|
247
224
|
return mem_buffers[ od].buffer;
|
|
248
225
|
}
|
|
249
226
|
|
|
250
|
-
#endif /* MCPP_LIB */
|
|
251
227
|
|
|
252
228
|
#define DEST2FP(od) \
|
|
253
229
|
(od == OUT) ? fp_out : \
|
|
@@ -268,17 +244,13 @@ int mcpp_lib_fputc(
|
|
|
268
244
|
OUTDEST od
|
|
269
245
|
)
|
|
270
246
|
{
|
|
271
|
-
#if MCPP_LIB
|
|
272
247
|
if (use_mem_buffers) {
|
|
273
248
|
return mem_putc( c, od);
|
|
274
249
|
} else {
|
|
275
|
-
#endif
|
|
276
250
|
FILE * stream = DEST2FP( od);
|
|
277
251
|
|
|
278
252
|
return (stream != NULL) ? fputc( c, stream) : EOF;
|
|
279
|
-
#if MCPP_LIB
|
|
280
253
|
}
|
|
281
|
-
#endif
|
|
282
254
|
}
|
|
283
255
|
|
|
284
256
|
int (* mcpp_fputc)( int c, OUTDEST od) = mcpp_lib_fputc;
|
|
@@ -288,17 +260,13 @@ int mcpp_lib_fputs(
|
|
|
288
260
|
OUTDEST od
|
|
289
261
|
)
|
|
290
262
|
{
|
|
291
|
-
#if MCPP_LIB
|
|
292
263
|
if (use_mem_buffers) {
|
|
293
264
|
return mem_puts( s, od);
|
|
294
265
|
} else {
|
|
295
|
-
#endif
|
|
296
266
|
FILE * stream = DEST2FP( od);
|
|
297
267
|
|
|
298
268
|
return (stream != NULL) ? fputs( s, stream) : EOF;
|
|
299
|
-
#if MCPP_LIB
|
|
300
269
|
}
|
|
301
|
-
#endif
|
|
302
270
|
}
|
|
303
271
|
|
|
304
272
|
int (* mcpp_fputs)( const char * s, OUTDEST od) = mcpp_lib_fputs;
|
|
@@ -318,7 +286,6 @@ int mcpp_lib_fprintf(
|
|
|
318
286
|
int rc;
|
|
319
287
|
|
|
320
288
|
va_start( ap, format);
|
|
321
|
-
#if MCPP_LIB
|
|
322
289
|
if (use_mem_buffers) {
|
|
323
290
|
static char mem_buffer[ NWORK];
|
|
324
291
|
|
|
@@ -328,11 +295,8 @@ int mcpp_lib_fprintf(
|
|
|
328
295
|
rc = mem_puts( mem_buffer, od);
|
|
329
296
|
}
|
|
330
297
|
} else {
|
|
331
|
-
#endif
|
|
332
298
|
rc = vfprintf( stream, format, ap);
|
|
333
|
-
#if MCPP_LIB
|
|
334
299
|
}
|
|
335
|
-
#endif
|
|
336
300
|
va_end( ap);
|
|
337
301
|
|
|
338
302
|
return rc;
|
|
@@ -344,7 +308,6 @@ int mcpp_lib_fprintf(
|
|
|
344
308
|
|
|
345
309
|
int (* mcpp_fprintf)( OUTDEST od, const char * format, ...) = mcpp_lib_fprintf;
|
|
346
310
|
|
|
347
|
-
#if MCPP_LIB
|
|
348
311
|
void mcpp_reset_def_out_func( void)
|
|
349
312
|
{
|
|
350
313
|
mcpp_fputc = mcpp_lib_fputc;
|
|
@@ -362,7 +325,6 @@ void mcpp_set_out_func(
|
|
|
362
325
|
mcpp_fputs = func_fputs;
|
|
363
326
|
mcpp_fprintf = func_fprintf;
|
|
364
327
|
}
|
|
365
|
-
#endif
|
|
366
328
|
|
|
367
329
|
int get_unexpandable(
|
|
368
330
|
int c, /* First char of token */
|
|
@@ -401,8 +363,7 @@ int get_unexpandable(
|
|
|
401
363
|
/* This diagnostic is issued even if "diag" is FALSE. */
|
|
402
364
|
cwarn( "Macro \"%s\" is expanded to 0 token" /* _W1_ */
|
|
403
365
|
, defp->name, 0L, NULL);
|
|
404
|
-
|
|
405
|
-
dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
|
|
366
|
+
dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
|
|
406
367
|
}
|
|
407
368
|
}
|
|
408
369
|
|
|
@@ -422,16 +383,11 @@ int get_unexpandable(
|
|
|
422
383
|
c = get_ch();
|
|
423
384
|
continue;
|
|
424
385
|
}
|
|
425
|
-
if (
|
|
386
|
+
if (str_eq( identifier, "defined")) {
|
|
426
387
|
cwarn( "Macro \"%s\" is expanded to \"defined\"" /* _W1_ */
|
|
427
388
|
, defp->name, 0L, NULL);
|
|
428
389
|
break;
|
|
429
390
|
}
|
|
430
|
-
if (! standard && str_eq( identifier, "sizeof")) {
|
|
431
|
-
cwarn( "Macro \"%s\" is expanded to \"sizeof\"" /* _W1_ */
|
|
432
|
-
, defp->name, 0L, NULL);
|
|
433
|
-
break;
|
|
434
|
-
}
|
|
435
391
|
c = get_ch();
|
|
436
392
|
}
|
|
437
393
|
if (file == infile) {
|
|
@@ -501,8 +457,7 @@ int scan_token(
|
|
|
501
457
|
int token_type = 0; /* Type of token */
|
|
502
458
|
int ch;
|
|
503
459
|
|
|
504
|
-
|
|
505
|
-
in_token = TRUE; /* While a token is scanned */
|
|
460
|
+
in_token = TRUE; /* While a token is scanned */
|
|
506
461
|
c = c & UCHARMAX;
|
|
507
462
|
ch_type = char_type[ c] & MBMASK;
|
|
508
463
|
|
|
@@ -510,8 +465,6 @@ int scan_token(
|
|
|
510
465
|
case LET: /* Probably an identifier */
|
|
511
466
|
switch (c) {
|
|
512
467
|
case 'L':
|
|
513
|
-
if (! standard)
|
|
514
|
-
goto ident;
|
|
515
468
|
ch = get_ch();
|
|
516
469
|
if (char_type[ ch] & QUO) { /* char_type[ ch] == QUO */
|
|
517
470
|
if (ch == '"')
|
|
@@ -525,7 +478,6 @@ int scan_token(
|
|
|
525
478
|
unget_ch();
|
|
526
479
|
} /* Fall through */
|
|
527
480
|
default: /* An identifier */
|
|
528
|
-
ident:
|
|
529
481
|
scan_id( c);
|
|
530
482
|
out = stpcpy( out, identifier);
|
|
531
483
|
token_type = NAM;
|
|
@@ -550,8 +502,7 @@ ident:
|
|
|
550
502
|
goto operat;
|
|
551
503
|
/* Else fall through */
|
|
552
504
|
case DIG: /* Preprocessing number */
|
|
553
|
-
out =
|
|
554
|
-
: scan_number_prestd( c, out, out_end));
|
|
505
|
+
out = scan_number( c, out, out_end);
|
|
555
506
|
token_type = NUM;
|
|
556
507
|
break;
|
|
557
508
|
case PUNC:
|
|
@@ -559,25 +510,7 @@ operat: out = scan_op( c, out); /* Operator or punctuator */
|
|
|
559
510
|
token_type = OPE; /* Number is set in global "openum" */
|
|
560
511
|
break;
|
|
561
512
|
default: /* Special tokens or special characters */
|
|
562
|
-
|
|
563
|
-
if (mcpp_mode == STD && c == '\\' && stdc2) {
|
|
564
|
-
ch = get_ch();
|
|
565
|
-
unget_ch();
|
|
566
|
-
if (ch == 'U' || ch == 'u')
|
|
567
|
-
goto ident; /* Universal-Characte-Name */
|
|
568
|
-
}
|
|
569
|
-
#endif
|
|
570
|
-
#if OK_MBIDENT
|
|
571
|
-
if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
|
|
572
|
-
char * bptr = infile->bptr;
|
|
573
|
-
mb_read( c, &infile->bptr, &out);
|
|
574
|
-
infile->bptr = bptr;
|
|
575
|
-
out = *out_pp;
|
|
576
|
-
goto ident; /* An identifier with multi-byte characters */
|
|
577
|
-
/* Mbchar cheking has been done in scan_quote() and others. */
|
|
578
|
-
}
|
|
579
|
-
#endif
|
|
580
|
-
if ((standard && (c == CAT || c == ST_QUOTE)) || (char_type[ c] & SPA))
|
|
513
|
+
if (((c == CAT || c == ST_QUOTE)) || (char_type[ c] & SPA))
|
|
581
514
|
token_type = SEP; /* Token separator or magic char*/
|
|
582
515
|
else
|
|
583
516
|
token_type = SPE;
|
|
@@ -592,9 +525,6 @@ operat: out = scan_op( c, out); /* Operator or punctuator */
|
|
|
592
525
|
, *out_pp, 0L, NULL);
|
|
593
526
|
if (mcpp_debug & TOKEN)
|
|
594
527
|
dump_token( token_type, *out_pp);
|
|
595
|
-
if (mcpp_mode == POST_STD && token_type != SEP && infile->fp != NULL
|
|
596
|
-
&& (char_type[ *infile->bptr & UCHARMAX] & SPA) == 0)
|
|
597
|
-
insert_sep = INSERT_SEP; /* Insert token separator */
|
|
598
528
|
*out_pp = out;
|
|
599
529
|
|
|
600
530
|
in_token = FALSE; /* Token scanning has been done */
|
|
@@ -610,13 +540,6 @@ static void scan_id(
|
|
|
610
540
|
*/
|
|
611
541
|
{
|
|
612
542
|
static char * const limit = &identifier[ IDMAX];
|
|
613
|
-
static int dollar_diagnosed = FALSE; /* Flag of diagnosing '$' */
|
|
614
|
-
#if OK_UCN
|
|
615
|
-
int uc2 = 0, uc4 = 0; /* Count of UCN16, UCN32 */
|
|
616
|
-
#endif
|
|
617
|
-
#if OK_MBIDENT
|
|
618
|
-
int mb = 0; /* Count of MBCHAR */
|
|
619
|
-
#endif
|
|
620
543
|
size_t len; /* Length of identifier */
|
|
621
544
|
char * bp = identifier;
|
|
622
545
|
|
|
@@ -632,56 +555,9 @@ static void scan_id(
|
|
|
632
555
|
do {
|
|
633
556
|
if (bp < limit)
|
|
634
557
|
*bp++ = c;
|
|
635
|
-
|
|
636
|
-
if (mcpp_mode == STD && c == '\\' && stdc2) {
|
|
637
|
-
int cnt;
|
|
638
|
-
char * tp = bp;
|
|
639
|
-
|
|
640
|
-
if ((c = get_ch()) == 'u') {
|
|
641
|
-
cnt = 4;
|
|
642
|
-
} else if (c == 'U') {
|
|
643
|
-
cnt = 8;
|
|
644
|
-
} else {
|
|
645
|
-
unget_ch();
|
|
646
|
-
bp--;
|
|
647
|
-
break;
|
|
648
|
-
}
|
|
649
|
-
*bp++ = c;
|
|
650
|
-
if ((bp = scan_ucn( cnt, bp)) == NULL) /* Error */
|
|
651
|
-
return;
|
|
652
|
-
if (cnt == 4)
|
|
653
|
-
uc2++;
|
|
654
|
-
else if (cnt == 8)
|
|
655
|
-
uc4++;
|
|
656
|
-
if (limit <= tp) /* Too long identifier */
|
|
657
|
-
bp = tp; /* Back the pointer */
|
|
658
|
-
goto next_c;
|
|
659
|
-
}
|
|
660
|
-
#endif /* OK_UCN */
|
|
661
|
-
#if OK_MBIDENT
|
|
662
|
-
if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
|
|
663
|
-
len = mb_read( c, &infile->bptr, &bp);
|
|
664
|
-
if (len & MB_ERROR) {
|
|
665
|
-
if (infile->fp)
|
|
666
|
-
cerror(
|
|
667
|
-
"Illegal multi-byte character sequence." /* _E_ */
|
|
668
|
-
, NULL, 0L, NULL);
|
|
669
|
-
} else {
|
|
670
|
-
mb += len;
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
#endif /* OK_MBIDENT */
|
|
674
|
-
#if OK_UCN
|
|
675
|
-
next_c:
|
|
676
|
-
#endif
|
|
558
|
+
|
|
677
559
|
c = get_ch();
|
|
678
560
|
} while ((char_type[ c] & (LET | DIG)) /* Letter or digit */
|
|
679
|
-
#if OK_UCN
|
|
680
|
-
|| (mcpp_mode == STD && c == '\\' && stdc2)
|
|
681
|
-
#endif
|
|
682
|
-
#if OK_MBIDENT
|
|
683
|
-
|| (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3)
|
|
684
|
-
#endif
|
|
685
561
|
);
|
|
686
562
|
|
|
687
563
|
unget_ch();
|
|
@@ -694,24 +570,10 @@ next_c:
|
|
|
694
570
|
len = bp - identifier;
|
|
695
571
|
#if IDMAX > IDLEN90MIN
|
|
696
572
|
/* UCN16, UCN32, MBCHAR are counted as one character for each. */
|
|
697
|
-
|
|
698
|
-
if (mcpp_mode == STD)
|
|
699
|
-
len -= (uc2 * 5) - (uc4 * 9);
|
|
700
|
-
#endif
|
|
701
|
-
#if OK_MBIDENT
|
|
702
|
-
if (mcpp_mode == STD)
|
|
703
|
-
len -= mb;
|
|
704
|
-
#endif
|
|
705
|
-
if (standard && infile->fp && len > std_limits.id_len && (warn_level & 4))
|
|
573
|
+
if (infile->fp && len > std_limits.id_len && (warn_level & 4))
|
|
706
574
|
cwarn( "Identifier longer than %.0s%ld characters \"%s\"" /* _W4_ */
|
|
707
575
|
, NULL, (long) std_limits.id_len, identifier);
|
|
708
576
|
#endif /* IDMAX > IDLEN90MIN */
|
|
709
|
-
|
|
710
|
-
if (option_flags.dollar_in_name && dollar_diagnosed == FALSE
|
|
711
|
-
&& (warn_level & 2) && strchr( identifier, '$') != NULL) {
|
|
712
|
-
cwarn( "'$' in identifier \"%s\"", identifier, 0L, NULL); /* _W2_ */
|
|
713
|
-
dollar_diagnosed = TRUE; /* Diagnose only once */
|
|
714
|
-
}
|
|
715
577
|
}
|
|
716
578
|
|
|
717
579
|
char * scan_quote(
|
|
@@ -735,18 +597,15 @@ char * scan_quote(
|
|
|
735
597
|
const char * const empty_const
|
|
736
598
|
= "Empty character constant %s%.0ld%s";
|
|
737
599
|
const char * skip;
|
|
738
|
-
size_t len;
|
|
739
600
|
int c;
|
|
740
601
|
char * out_p = out;
|
|
741
602
|
|
|
742
603
|
/* Set again in case of called from routines other than scan_token(). */
|
|
743
|
-
|
|
744
|
-
in_token = TRUE;
|
|
604
|
+
in_token = TRUE;
|
|
745
605
|
*out_p++ = delim;
|
|
746
606
|
if (delim == '<')
|
|
747
607
|
delim = '>';
|
|
748
608
|
|
|
749
|
-
scan:
|
|
750
609
|
while ((c = get_ch()) != EOS) {
|
|
751
610
|
|
|
752
611
|
#if MBCHAR
|
|
@@ -777,29 +636,8 @@ scan:
|
|
|
777
636
|
if (c == delim) {
|
|
778
637
|
break;
|
|
779
638
|
} else if (c == '\\' && delim != '>') { /* In string literal */
|
|
780
|
-
#if OK_UCN
|
|
781
|
-
if (mcpp_mode == STD && stdc2) {
|
|
782
|
-
int cnt;
|
|
783
|
-
char * tp;
|
|
784
|
-
|
|
785
|
-
*out_p++ = c;
|
|
786
|
-
if ((c = get_ch()) == 'u') {
|
|
787
|
-
cnt = 4;
|
|
788
|
-
} else if (c == 'U') {
|
|
789
|
-
cnt = 8;
|
|
790
|
-
} else {
|
|
791
|
-
goto escape;
|
|
792
|
-
}
|
|
793
|
-
*out_p++ = c;
|
|
794
|
-
if ((tp = scan_ucn( cnt, out_p)) != NULL)
|
|
795
|
-
out_p = tp;
|
|
796
|
-
/* Else error */
|
|
797
|
-
continue; /* Error or not, anyway continue */
|
|
798
|
-
}
|
|
799
|
-
#endif /* OK_UCN */
|
|
800
639
|
*out_p++ = c; /* Escape sequence */
|
|
801
640
|
c = get_ch();
|
|
802
|
-
escape:
|
|
803
641
|
#if MBCHAR
|
|
804
642
|
if (char_type[ c] & mbchk) {
|
|
805
643
|
/* '\\' followed by multi-byte char */
|
|
@@ -807,15 +645,6 @@ escape:
|
|
|
807
645
|
continue;
|
|
808
646
|
}
|
|
809
647
|
#endif
|
|
810
|
-
if (! standard && c == '\n') { /* <backslash><newline> */
|
|
811
|
-
out_p--; /* Splice the lines */
|
|
812
|
-
if (cat_line( TRUE) == NULL) /* End of file */
|
|
813
|
-
break;
|
|
814
|
-
c = get_ch();
|
|
815
|
-
}
|
|
816
|
-
} else if (mcpp_mode == POST_STD && c == ' ' && delim == '>'
|
|
817
|
-
&& infile->fp == NULL) {
|
|
818
|
-
continue; /* Skip space possibly inserted by macro expansion */
|
|
819
648
|
} else if (c == '\n') {
|
|
820
649
|
break;
|
|
821
650
|
}
|
|
@@ -825,7 +654,6 @@ escape:
|
|
|
825
654
|
"Illegal control character %.0s0lx%02x in quotation" /* _W1_ */
|
|
826
655
|
, NULL, (long) c, NULL);
|
|
827
656
|
*out_p++ = c;
|
|
828
|
-
chk_limit:
|
|
829
657
|
if (out_end < out_p) {
|
|
830
658
|
*out_end = EOS;
|
|
831
659
|
cfatal( "Too long quotation", NULL, 0L, NULL); /* _F_ */
|
|
@@ -840,54 +668,22 @@ chk_limit:
|
|
|
840
668
|
if (diag) { /* At translation phase 3 */
|
|
841
669
|
skip = (infile->fp == NULL) ? NULL : skip_line;
|
|
842
670
|
if (c != delim) {
|
|
843
|
-
if (mcpp_mode == OLD_PREP /* Implicit closing of quote*/
|
|
844
|
-
&& (delim == '"' || delim == '\''))
|
|
845
|
-
goto done;
|
|
846
671
|
if (delim == '"') {
|
|
847
|
-
|
|
848
|
-
/* STD, KR */
|
|
849
|
-
/* Concatenate the unterminated string to the next line */
|
|
850
|
-
if (warn_level & 1)
|
|
851
|
-
cwarn( unterm_string
|
|
852
|
-
, ", catenated to the next line" /* _W1_ */
|
|
853
|
-
, 0L, NULL);
|
|
854
|
-
if (cat_line( FALSE) != NULL)
|
|
855
|
-
goto scan; /* Splice the lines */
|
|
856
|
-
/* Else end of file */
|
|
857
|
-
} else {
|
|
858
|
-
cerror( unterm_string, skip, 0L, NULL); /* _E_ */
|
|
859
|
-
}
|
|
672
|
+
cerror( unterm_string, skip, 0L, NULL); /* _E_ */
|
|
860
673
|
} else if (delim == '\'') {
|
|
861
|
-
|
|
862
|
-
/* STD, KR */
|
|
863
|
-
if (warn_level & 1)
|
|
864
|
-
cwarn( unterm_char, out, 0L, NULL); /* _W1_ */
|
|
865
|
-
goto done;
|
|
866
|
-
} else {
|
|
867
|
-
cerror( unterm_char, out, 0L, skip); /* _E_ */
|
|
868
|
-
}
|
|
674
|
+
cerror( unterm_char, out, 0L, skip); /* _E_ */
|
|
869
675
|
} else {
|
|
870
676
|
cerror( "Unterminated header name %s%.0ld%s" /* _E_ */
|
|
871
677
|
, out, 0L, skip);
|
|
872
678
|
}
|
|
873
679
|
out_p = NULL;
|
|
874
680
|
} else if (delim == '\'' && out_p - out <= 2) {
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
cwarn( empty_const, out, 0L, skip); /* _W1_ */
|
|
879
|
-
} else {
|
|
880
|
-
cerror( empty_const, out, 0L, skip); /* _E_ */
|
|
881
|
-
out_p = NULL;
|
|
882
|
-
goto done;
|
|
883
|
-
}
|
|
884
|
-
} else if (mcpp_mode == POST_STD && delim == '>' && (warn_level & 2)) {
|
|
885
|
-
cwarn(
|
|
886
|
-
"Header-name enclosed by <, > is an obsolescent feature %s" /* _W2_ */
|
|
887
|
-
, out, 0L, skip);
|
|
681
|
+
cerror( empty_const, out, 0L, skip); /* _E_ */
|
|
682
|
+
out_p = NULL;
|
|
683
|
+
goto done;
|
|
888
684
|
}
|
|
889
685
|
#if NWORK-2 > SLEN90MIN
|
|
890
|
-
if (
|
|
686
|
+
if (out_p - out > std_limits.str_len && (warn_level & 4))
|
|
891
687
|
cwarn( "Quotation longer than %.0s%ld bytes" /* _W4_ */
|
|
892
688
|
, NULL, std_limits.str_len, NULL);
|
|
893
689
|
#endif
|
|
@@ -898,44 +694,6 @@ done:
|
|
|
898
694
|
return out_p;
|
|
899
695
|
}
|
|
900
696
|
|
|
901
|
-
static char * cat_line(
|
|
902
|
-
int del_bsl /* Delete the <backslash><newline> ? */
|
|
903
|
-
)
|
|
904
|
-
/*
|
|
905
|
-
* If del_bsl == TRUE:
|
|
906
|
-
* Delete <backslash><newline> sequence in string literal.
|
|
907
|
-
* FALSE: Overwrite the <newline> with <backslash>'n'.
|
|
908
|
-
* Return NULL on end of file. Called only from scan_quote().
|
|
909
|
-
* This routine is never called in POST_STD mode.
|
|
910
|
-
*/
|
|
911
|
-
{
|
|
912
|
-
size_t len;
|
|
913
|
-
char * save1, * save2;
|
|
914
|
-
|
|
915
|
-
if (del_bsl) { /* Delete the <backslash><newline> */
|
|
916
|
-
infile->bptr -= 2;
|
|
917
|
-
len = infile->bptr - infile->buffer;
|
|
918
|
-
} else { /* Overwrite the <newline> with <backslash>'n' */
|
|
919
|
-
strcpy( infile->bptr, "\\n");
|
|
920
|
-
len = strlen( infile->buffer);
|
|
921
|
-
}
|
|
922
|
-
save1 = save_string( infile->buffer);
|
|
923
|
-
save2 = get_line( FALSE); /* infile->buffer is overwritten */
|
|
924
|
-
if (save2 == NULL) {
|
|
925
|
-
free( save1);
|
|
926
|
-
return NULL;
|
|
927
|
-
}
|
|
928
|
-
save2 = save_string( infile->buffer);
|
|
929
|
-
memcpy( infile->buffer, save1, len);
|
|
930
|
-
strcpy( infile->buffer + len, save2); /* Catenate */
|
|
931
|
-
free( save1);
|
|
932
|
-
free( save2);
|
|
933
|
-
if (! del_bsl)
|
|
934
|
-
len -= 2;
|
|
935
|
-
infile->bptr = infile->buffer + len;
|
|
936
|
-
return infile->bptr;
|
|
937
|
-
}
|
|
938
|
-
|
|
939
697
|
static char * scan_number(
|
|
940
698
|
int c, /* First char of number */
|
|
941
699
|
char * out, /* Output buffer */
|
|
@@ -955,55 +713,16 @@ static char * scan_number(
|
|
|
955
713
|
do {
|
|
956
714
|
*out_p++ = c;
|
|
957
715
|
if (c == 'E' || c == 'e' /* Sign should follow 'E', 'e', */
|
|
958
|
-
|| (stdc3 && (c == 'P' || c == 'p'))
|
|
959
|
-
/* 'P' or 'p'. */
|
|
960
716
|
) {
|
|
961
717
|
c = get_ch();
|
|
962
718
|
if (c == '+' || c == '-') {
|
|
963
719
|
*out_p++ = c;
|
|
964
720
|
c = get_ch();
|
|
965
721
|
}
|
|
966
|
-
#if OK_UCN
|
|
967
|
-
} else if (mcpp_mode == STD && c == '\\' && stdc3) {
|
|
968
|
-
int cnt;
|
|
969
|
-
char * tp;
|
|
970
|
-
|
|
971
|
-
if ((c = get_ch()) == 'u') {
|
|
972
|
-
cnt = 4;
|
|
973
|
-
} else if (c == 'U') {
|
|
974
|
-
cnt = 8;
|
|
975
|
-
} else {
|
|
976
|
-
unget_ch();
|
|
977
|
-
out_p--;
|
|
978
|
-
break;
|
|
979
|
-
}
|
|
980
|
-
*out_p++ = c;
|
|
981
|
-
if ((tp = scan_ucn( cnt, out_p)) == NULL) /* Error */
|
|
982
|
-
break;
|
|
983
|
-
else
|
|
984
|
-
out_p = tp;
|
|
985
|
-
c = get_ch();
|
|
986
|
-
#endif /* OK_UCN */
|
|
987
|
-
#if OK_MBIDENT
|
|
988
|
-
} else if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
|
|
989
|
-
len = mb_read( c, &infile->bptr, &out_p);
|
|
990
|
-
if (len & MB_ERROR) {
|
|
991
|
-
if (infile->fp)
|
|
992
|
-
cerror(
|
|
993
|
-
"Illegal multi-byte character sequence." /* _E_ */
|
|
994
|
-
, NULL, 0L, NULL);
|
|
995
|
-
}
|
|
996
|
-
#endif /* OK_MBIDENT */
|
|
997
722
|
} else {
|
|
998
723
|
c = get_ch();
|
|
999
724
|
}
|
|
1000
725
|
} while ((char_type[ c] & (DIG | DOT | LET)) /* Digit, dot or letter */
|
|
1001
|
-
#if OK_UCN
|
|
1002
|
-
|| (mcpp_mode == STD && c == '\\' && stdc3)
|
|
1003
|
-
#endif
|
|
1004
|
-
#if OK_MBIDENT
|
|
1005
|
-
|| (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3)
|
|
1006
|
-
#endif
|
|
1007
726
|
);
|
|
1008
727
|
|
|
1009
728
|
*out_p = EOS;
|
|
@@ -1014,172 +733,6 @@ static char * scan_number(
|
|
|
1014
733
|
return out_p;
|
|
1015
734
|
}
|
|
1016
735
|
|
|
1017
|
-
/* Original version of DECUS CPP with slight modifications, */
|
|
1018
|
-
/* too exact for Standard preprocessing. */
|
|
1019
|
-
static char * scan_number_prestd(
|
|
1020
|
-
int c, /* First char of number */
|
|
1021
|
-
char * out, /* Output buffer */
|
|
1022
|
-
char * out_end /* Limit of output buffer */
|
|
1023
|
-
)
|
|
1024
|
-
/*
|
|
1025
|
-
* Process a number. We know that c is from 0 to 9 or dot.
|
|
1026
|
-
* Algorithm from Dave Conroy's Decus C.
|
|
1027
|
-
* Returns the advanced output pointer.
|
|
1028
|
-
*/
|
|
1029
|
-
{
|
|
1030
|
-
char * const out_s = out; /* For diagnostics */
|
|
1031
|
-
int radix; /* 8, 10, or 16 */
|
|
1032
|
-
int expseen; /* 'e' seen in floater */
|
|
1033
|
-
int octal89; /* For bad octal test */
|
|
1034
|
-
int dotflag; /* TRUE if '.' was seen */
|
|
1035
|
-
|
|
1036
|
-
expseen = FALSE; /* No exponent seen yet */
|
|
1037
|
-
octal89 = FALSE; /* No bad octal yet */
|
|
1038
|
-
radix = 10; /* Assume decimal */
|
|
1039
|
-
if ((dotflag = (c == '.')) != FALSE) { /* . something? */
|
|
1040
|
-
*out++ = '.'; /* Always out the dot */
|
|
1041
|
-
if ((char_type[(c = get_ch())] & DIG) == 0) {
|
|
1042
|
-
/* If not a float numb, */
|
|
1043
|
-
goto nomore; /* All done for now */
|
|
1044
|
-
}
|
|
1045
|
-
} /* End of float test */
|
|
1046
|
-
else if (c == '0') { /* Octal or hex? */
|
|
1047
|
-
*out++ = c; /* Stuff initial zero */
|
|
1048
|
-
radix = 8; /* Assume it's octal */
|
|
1049
|
-
c = get_ch(); /* Look for an 'x' */
|
|
1050
|
-
if (c == 'x' || c == 'X') { /* Did we get one? */
|
|
1051
|
-
radix = 16; /* Remember new radix */
|
|
1052
|
-
*out++ = c; /* Stuff the 'x' */
|
|
1053
|
-
c = get_ch(); /* Get next character */
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
while (1) { /* Process curr. char. */
|
|
1057
|
-
/*
|
|
1058
|
-
* Note that this algorithm accepts "012e4" and "03.4"
|
|
1059
|
-
* as legitimate floating-point numbers.
|
|
1060
|
-
*/
|
|
1061
|
-
if (radix != 16 && (c == 'e' || c == 'E')) {
|
|
1062
|
-
if (expseen) /* Already saw 'E'? */
|
|
1063
|
-
break; /* Exit loop, bad nbr. */
|
|
1064
|
-
expseen = TRUE; /* Set exponent seen */
|
|
1065
|
-
radix = 10; /* Decimal exponent */
|
|
1066
|
-
*out++ = c; /* Output the 'e' */
|
|
1067
|
-
if ((c = get_ch()) != '+' && c != '-')
|
|
1068
|
-
continue;
|
|
1069
|
-
}
|
|
1070
|
-
else if (radix != 16 && c == '.') {
|
|
1071
|
-
if (dotflag) /* Saw dot already? */
|
|
1072
|
-
break; /* Exit loop, two dots */
|
|
1073
|
-
dotflag = TRUE; /* Remember the dot */
|
|
1074
|
-
radix = 10; /* Decimal fraction */
|
|
1075
|
-
}
|
|
1076
|
-
else { /* Check the digit */
|
|
1077
|
-
switch (c) {
|
|
1078
|
-
case '8': case '9': /* Sometimes wrong */
|
|
1079
|
-
octal89 = TRUE; /* Do check later */
|
|
1080
|
-
case '0': case '1': case '2': case '3':
|
|
1081
|
-
case '4': case '5': case '6': case '7':
|
|
1082
|
-
break; /* Always ok */
|
|
1083
|
-
|
|
1084
|
-
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
|
|
1085
|
-
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
|
|
1086
|
-
if (radix == 16) /* Alpha's are ok only */
|
|
1087
|
-
break; /* if reading hex. */
|
|
1088
|
-
default: /* At number end */
|
|
1089
|
-
goto done; /* Break from for loop */
|
|
1090
|
-
} /* End of switch */
|
|
1091
|
-
} /* End general case */
|
|
1092
|
-
*out++ = c; /* Accept the character */
|
|
1093
|
-
c = get_ch(); /* Read another char */
|
|
1094
|
-
} /* End of scan loop */
|
|
1095
|
-
|
|
1096
|
-
if (out_end < out) /* Buffer overflow */
|
|
1097
|
-
goto nomore;
|
|
1098
|
-
/*
|
|
1099
|
-
* When we break out of the scan loop, c contains the first
|
|
1100
|
-
* character (maybe) not in the number. If the number is an
|
|
1101
|
-
* integer, allow a trailing 'L' for long. If not those, push
|
|
1102
|
-
* the trailing character back on the input stream.
|
|
1103
|
-
* Floating point numbers accept a trailing 'L' for "long double".
|
|
1104
|
-
*/
|
|
1105
|
-
done:
|
|
1106
|
-
if (! (dotflag || expseen)) { /* Not floating point */
|
|
1107
|
-
/*
|
|
1108
|
-
* We know that dotflag and expseen are both zero, now:
|
|
1109
|
-
* dotflag signals "saw 'L'".
|
|
1110
|
-
*/
|
|
1111
|
-
for (;;) {
|
|
1112
|
-
switch (c) {
|
|
1113
|
-
case 'l':
|
|
1114
|
-
case 'L':
|
|
1115
|
-
if (dotflag)
|
|
1116
|
-
goto nomore;
|
|
1117
|
-
dotflag = TRUE;
|
|
1118
|
-
break;
|
|
1119
|
-
default:
|
|
1120
|
-
goto nomore;
|
|
1121
|
-
}
|
|
1122
|
-
*out++ = c; /* Got 'L' . */
|
|
1123
|
-
c = get_ch(); /* Look at next, too. */
|
|
1124
|
-
}
|
|
1125
|
-
}
|
|
1126
|
-
|
|
1127
|
-
nomore: *out = EOS;
|
|
1128
|
-
if (out_end < out)
|
|
1129
|
-
goto overflow;
|
|
1130
|
-
unget_ch(); /* Not part of a number */
|
|
1131
|
-
if (octal89 && radix == 8 && (warn_level & 1))
|
|
1132
|
-
cwarn( "Illegal digit in octal number \"%s\"" /* _W1_ */
|
|
1133
|
-
, out_s, 0L, NULL);
|
|
1134
|
-
return out;
|
|
1135
|
-
|
|
1136
|
-
overflow:
|
|
1137
|
-
cfatal( "Too long number token \"%s\"", out_s, 0L, NULL); /* _F_ */
|
|
1138
|
-
return out;
|
|
1139
|
-
}
|
|
1140
|
-
|
|
1141
|
-
#if OK_UCN
|
|
1142
|
-
static char * scan_ucn(
|
|
1143
|
-
int cnt, /* Bytes of sequence */
|
|
1144
|
-
char * out /* Output buffer */
|
|
1145
|
-
)
|
|
1146
|
-
/*
|
|
1147
|
-
* Scan an UCN sequence and put the sequence to 'out'.
|
|
1148
|
-
* Return the advanced pointer or NULL on failure.
|
|
1149
|
-
* This routine is never called in POST_STD mode.
|
|
1150
|
-
*/
|
|
1151
|
-
{
|
|
1152
|
-
uexpr_t value; /* Value of UCN */
|
|
1153
|
-
int i, c;
|
|
1154
|
-
|
|
1155
|
-
value = 0L;
|
|
1156
|
-
for (i = 0; i < cnt; i++) {
|
|
1157
|
-
c = get_ch();
|
|
1158
|
-
if (! isxdigit( c)) {
|
|
1159
|
-
if (infile->fp)
|
|
1160
|
-
cerror( "Illegal UCN sequence" /* _E_ */
|
|
1161
|
-
, NULL, 0L, NULL);
|
|
1162
|
-
*out = EOS;
|
|
1163
|
-
unget_ch();
|
|
1164
|
-
return NULL;
|
|
1165
|
-
}
|
|
1166
|
-
c = tolower( c);
|
|
1167
|
-
*out++ = c;
|
|
1168
|
-
c = (isdigit( c) ? (c - '0') : (c - 'a' + 10));
|
|
1169
|
-
value = (value << 4) | c;
|
|
1170
|
-
}
|
|
1171
|
-
if (infile->fp /* In source */
|
|
1172
|
-
&& ((value >= 0L && value <= 0x9FL
|
|
1173
|
-
&& value != 0x24L && value != 0x40L && value != 0x60L)
|
|
1174
|
-
/* Basic source character */
|
|
1175
|
-
|| (stdc3 && (value >= 0xD800L && value <= 0xDFFFL))))
|
|
1176
|
-
/* Reserved for special chars */
|
|
1177
|
-
cerror( "UCN cannot specify the value %.0s\"%08lx\"" /* _E_ */
|
|
1178
|
-
, NULL, (long) value, NULL);
|
|
1179
|
-
return out;
|
|
1180
|
-
}
|
|
1181
|
-
#endif /* OK_UCN */
|
|
1182
|
-
|
|
1183
736
|
static char * scan_op(
|
|
1184
737
|
int c, /* First char of the token */
|
|
1185
738
|
char * out /* Output buffer */
|
|
@@ -1192,7 +745,7 @@ static char * scan_op(
|
|
|
1192
745
|
* nevertheless is handled as a punctuator in this cpp for convenience.
|
|
1193
746
|
*/
|
|
1194
747
|
{
|
|
1195
|
-
int c2, c3
|
|
748
|
+
int c2, c3;
|
|
1196
749
|
|
|
1197
750
|
*out++ = c;
|
|
1198
751
|
|
|
@@ -1251,16 +804,10 @@ static char * scan_op(
|
|
|
1251
804
|
break;
|
|
1252
805
|
case '=': openum = OP_LE; break; /* <= */
|
|
1253
806
|
case ':': /* <: i.e. [ */
|
|
1254
|
-
|
|
1255
|
-
openum = OP_LBRCK_D;
|
|
1256
|
-
else
|
|
1257
|
-
openum = OP_LT;
|
|
807
|
+
openum = OP_LT;
|
|
1258
808
|
break;
|
|
1259
809
|
case '%': /* <% i.e. { */
|
|
1260
|
-
|
|
1261
|
-
openum = OP_LBRACE_D;
|
|
1262
|
-
else
|
|
1263
|
-
openum = OP_LT;
|
|
810
|
+
openum = OP_LT;
|
|
1264
811
|
break;
|
|
1265
812
|
default : openum = OP_LT; break; /* < */
|
|
1266
813
|
}
|
|
@@ -1281,7 +828,7 @@ static char * scan_op(
|
|
|
1281
828
|
}
|
|
1282
829
|
break;
|
|
1283
830
|
case '#':
|
|
1284
|
-
if (
|
|
831
|
+
if ((in_define || macro_line)) /* in #define or macro */
|
|
1285
832
|
openum = ((c2 == '#') ? OP_CAT : OP_STR); /* ##, # */
|
|
1286
833
|
else
|
|
1287
834
|
openum = OP_1; /* # */
|
|
@@ -1300,15 +847,7 @@ static char * scan_op(
|
|
|
1300
847
|
/* openum = OP_2; */
|
|
1301
848
|
break;
|
|
1302
849
|
case '>':
|
|
1303
|
-
|
|
1304
|
-
if ((c3 = get_ch()) == '*') { /* ->* */
|
|
1305
|
-
openum = OP_3;
|
|
1306
|
-
*out++ = c3;
|
|
1307
|
-
} else {
|
|
1308
|
-
/* openum = OP_2; */
|
|
1309
|
-
unget_ch();
|
|
1310
|
-
}
|
|
1311
|
-
} /* else openum = OP_2; */ /* -> */
|
|
850
|
+
/* else openum = OP_2; */ /* -> */
|
|
1312
851
|
/* else openum = OP_2; */
|
|
1313
852
|
break;
|
|
1314
853
|
default : openum = OP_SUB; break; /* - */
|
|
@@ -1318,36 +857,10 @@ static char * scan_op(
|
|
|
1318
857
|
switch (c2) {
|
|
1319
858
|
case '=': break; /* %= */
|
|
1320
859
|
case '>': /* %> i.e. } */
|
|
1321
|
-
|
|
1322
|
-
openum = OP_RBRACE_D;
|
|
1323
|
-
else
|
|
1324
|
-
openum = OP_MOD;
|
|
860
|
+
openum = OP_MOD;
|
|
1325
861
|
break;
|
|
1326
862
|
case ':':
|
|
1327
|
-
|
|
1328
|
-
if ((c3 = get_ch()) == '%') {
|
|
1329
|
-
if ((c4 = get_ch()) == ':') { /* %:%: i.e. ## */
|
|
1330
|
-
openum = OP_DSHARP_D;
|
|
1331
|
-
*out++ = c3;
|
|
1332
|
-
*out++ = c4;
|
|
1333
|
-
} else {
|
|
1334
|
-
unget_ch();
|
|
1335
|
-
unget_ch();
|
|
1336
|
-
openum = OP_SHARP_D; /* %: i.e. # */
|
|
1337
|
-
}
|
|
1338
|
-
} else {
|
|
1339
|
-
unget_ch();
|
|
1340
|
-
openum = OP_SHARP_D; /* %: i.e. # */
|
|
1341
|
-
}
|
|
1342
|
-
if (in_define) { /* in #define */
|
|
1343
|
-
if (openum == OP_DSHARP_D)
|
|
1344
|
-
openum = OP_CAT;
|
|
1345
|
-
else
|
|
1346
|
-
openum = OP_STR;
|
|
1347
|
-
}
|
|
1348
|
-
} else {
|
|
1349
|
-
openum = OP_MOD;
|
|
1350
|
-
}
|
|
863
|
+
openum = OP_MOD;
|
|
1351
864
|
break;
|
|
1352
865
|
default : openum = OP_MOD; break; /* % */
|
|
1353
866
|
}
|
|
@@ -1368,33 +881,22 @@ static char * scan_op(
|
|
|
1368
881
|
/* else openum = OP_2; */ /* ^= */
|
|
1369
882
|
break;
|
|
1370
883
|
case '.':
|
|
1371
|
-
if (
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
unget_ch();
|
|
1380
|
-
openum = OP_1;
|
|
1381
|
-
}
|
|
1382
|
-
} else if (cplus_val && c2 == '*') { /* .* */
|
|
1383
|
-
/* openum = OP_2 */ ;
|
|
1384
|
-
} else { /* . */
|
|
884
|
+
if (c2 == '.') {
|
|
885
|
+
c3 = get_ch();
|
|
886
|
+
if (c3 == '.') {
|
|
887
|
+
openum = OP_ELL; /* ... */
|
|
888
|
+
*out++ = c3;
|
|
889
|
+
break;
|
|
890
|
+
} else {
|
|
891
|
+
unget_ch();
|
|
1385
892
|
openum = OP_1;
|
|
1386
893
|
}
|
|
1387
|
-
} else {
|
|
894
|
+
} else { /* . */
|
|
1388
895
|
openum = OP_1;
|
|
1389
896
|
}
|
|
1390
897
|
break;
|
|
1391
898
|
case ':':
|
|
1392
|
-
|
|
1393
|
-
/* openum = OP_2 */ ;
|
|
1394
|
-
else if (mcpp_mode == STD && c2 == '>' && option_flags.dig)
|
|
1395
|
-
openum = OP_RBRCK_D; /* :> i.e. ] */
|
|
1396
|
-
else /* : */
|
|
1397
|
-
openum = OP_COL;
|
|
899
|
+
openum = OP_COL;
|
|
1398
900
|
break;
|
|
1399
901
|
default: /* Never reach here */
|
|
1400
902
|
cfatal( "Bug: Punctuator is mis-implemented %.0s0lx%x" /* _F_ */
|
|
@@ -1405,7 +907,7 @@ static char * scan_op(
|
|
|
1405
907
|
|
|
1406
908
|
switch (openum) {
|
|
1407
909
|
case OP_STR:
|
|
1408
|
-
if (
|
|
910
|
+
if (c == '%') break; /* %: */
|
|
1409
911
|
case OP_1:
|
|
1410
912
|
case OP_NOT: case OP_AND: case OP_OR: case OP_LT:
|
|
1411
913
|
case OP_GT: case OP_ADD: case OP_SUB: case OP_MOD:
|
|
@@ -1422,46 +924,6 @@ static char * scan_op(
|
|
|
1422
924
|
return out;
|
|
1423
925
|
}
|
|
1424
926
|
|
|
1425
|
-
int id_operator(
|
|
1426
|
-
const char * name
|
|
1427
|
-
)
|
|
1428
|
-
/*
|
|
1429
|
-
* Check whether the name is identifier-like operator in C++.
|
|
1430
|
-
* Return the operator number if matched, return 0 if not matched.
|
|
1431
|
-
* Note: these identifiers are defined as macros in <iso646.h> in C95.
|
|
1432
|
-
* This routine is never called in POST_STD mode.
|
|
1433
|
-
*/
|
|
1434
|
-
{
|
|
1435
|
-
typedef struct id_op {
|
|
1436
|
-
const char * name;
|
|
1437
|
-
int op_num;
|
|
1438
|
-
} ID_OP;
|
|
1439
|
-
|
|
1440
|
-
ID_OP id_ops[] = {
|
|
1441
|
-
{ "and", OP_ANA},
|
|
1442
|
-
{ "and_eq", OP_2},
|
|
1443
|
-
{ "bitand", OP_AND},
|
|
1444
|
-
{ "bitor", OP_OR},
|
|
1445
|
-
{ "compl", OP_COM},
|
|
1446
|
-
{ "not", OP_NOT},
|
|
1447
|
-
{ "not_eq", OP_NE},
|
|
1448
|
-
{ "or", OP_ORO},
|
|
1449
|
-
{ "or_eq", OP_2},
|
|
1450
|
-
{ "xor", OP_XOR},
|
|
1451
|
-
{ "xor_eq", OP_2},
|
|
1452
|
-
{ NULL, 0},
|
|
1453
|
-
};
|
|
1454
|
-
|
|
1455
|
-
ID_OP * id_p = id_ops;
|
|
1456
|
-
|
|
1457
|
-
while (id_p->name != NULL) {
|
|
1458
|
-
if (str_eq( name, id_p->name))
|
|
1459
|
-
return id_p->op_num;
|
|
1460
|
-
id_p++;
|
|
1461
|
-
}
|
|
1462
|
-
return 0;
|
|
1463
|
-
}
|
|
1464
|
-
|
|
1465
927
|
void expanding(
|
|
1466
928
|
const char * name, /* The name of (nested) macro just expanded. */
|
|
1467
929
|
int to_be_freed /* The name should be freed later. */
|
|
@@ -1519,24 +981,6 @@ int get_ch( void)
|
|
|
1519
981
|
if ((file = infile) == NULL)
|
|
1520
982
|
return CHAR_EOF; /* End of all input */
|
|
1521
983
|
|
|
1522
|
-
if (mcpp_mode == POST_STD && file->fp) { /* In a source file */
|
|
1523
|
-
switch (insert_sep) {
|
|
1524
|
-
case NO_SEP:
|
|
1525
|
-
break;
|
|
1526
|
-
case INSERT_SEP: /* Insert a token separator */
|
|
1527
|
-
insert_sep = INSERTED_SEP; /* Remember this fact */
|
|
1528
|
-
return ' '; /* for unget_ch(). */
|
|
1529
|
-
case INSERTED_SEP: /* Has just inserted */
|
|
1530
|
-
insert_sep = NO_SEP; /* Clear the flag */
|
|
1531
|
-
break;
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
if (! standard && squeezews) {
|
|
1535
|
-
if (*file->bptr == ' ')
|
|
1536
|
-
file->bptr++; /* Squeeze white spaces */
|
|
1537
|
-
squeezews = FALSE;
|
|
1538
|
-
}
|
|
1539
|
-
|
|
1540
984
|
if (mcpp_debug & GETC) {
|
|
1541
985
|
mcpp_fprintf( DBG, "get_ch(%s) '%c' line %ld, bptr = %d, buffer"
|
|
1542
986
|
, file->fp ? cur_fullname : file->real_fname ? file->real_fname
|
|
@@ -1556,19 +1000,7 @@ int get_ch( void)
|
|
|
1556
1000
|
* The character is converted to int with no sign-extension.
|
|
1557
1001
|
*/
|
|
1558
1002
|
if ((c = (*file->bptr++ & UCHARMAX)) != EOS) {
|
|
1559
|
-
|
|
1560
|
-
return c; /* Just a character */
|
|
1561
|
-
if (! in_string && c == '\\' && *file->bptr == '\n'
|
|
1562
|
-
&& in_define /* '\\''\n' is deleted in #define line, */
|
|
1563
|
-
/* provided the '\\' is not the 2nd byte of mbchar. */
|
|
1564
|
-
&& ! last_is_mbchar( file->buffer, strlen( file->buffer) - 2
|
|
1565
|
-
&& ! keep_spaces)
|
|
1566
|
-
) {
|
|
1567
|
-
if (*(file->bptr - 2) == ' ')
|
|
1568
|
-
squeezews = TRUE;
|
|
1569
|
-
} else {
|
|
1570
|
-
return c;
|
|
1571
|
-
}
|
|
1003
|
+
return c; /* Just a character */
|
|
1572
1004
|
}
|
|
1573
1005
|
|
|
1574
1006
|
/*
|
|
@@ -1608,10 +1040,8 @@ int get_ch( void)
|
|
|
1608
1040
|
infile->bptr = infile->buffer + len;
|
|
1609
1041
|
src_line = infile->line; /* Reset line number */
|
|
1610
1042
|
inc_dirp = infile->dirp; /* Includer's directory */
|
|
1611
|
-
#if MCPP_LIB
|
|
1612
1043
|
mcpp_set_out_func( infile->last_fputc, infile->last_fputs,
|
|
1613
1044
|
infile->last_fprintf);
|
|
1614
|
-
#endif
|
|
1615
1045
|
include_nest--;
|
|
1616
1046
|
src_line++; /* Next line to #include*/
|
|
1617
1047
|
sharp( NULL, infile->include_opt ? 1 : (file->include_opt ? 0 : 2));
|
|
@@ -1656,22 +1086,13 @@ static char * parse_line( void)
|
|
|
1656
1086
|
|
|
1657
1087
|
if ((sp = get_line( FALSE)) == NULL) /* Next logical line */
|
|
1658
1088
|
return NULL; /* End of a file */
|
|
1659
|
-
if (in_asm) { /* In #asm block */
|
|
1660
|
-
while (char_type[ *sp++ & UCHARMAX] & SPA)
|
|
1661
|
-
;
|
|
1662
|
-
if (*--sp == '#') /* Directive line */
|
|
1663
|
-
infile->bptr = sp;
|
|
1664
|
-
return infile->bptr; /* Don't tokenize */
|
|
1665
|
-
}
|
|
1666
1089
|
tp = temp = xmalloc( (size_t) NBUFF);
|
|
1667
1090
|
limit = temp + NBUFF - 2;
|
|
1668
1091
|
|
|
1669
1092
|
while (char_type[ c = *sp++ & UCHARMAX] & HSP) {
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
*tp++ = c;
|
|
1674
|
-
/* Else skip the line top spaces */
|
|
1093
|
+
/* Preserve line top horizontal white spaces */
|
|
1094
|
+
/* as they are for human-readability */
|
|
1095
|
+
*tp++ = c;
|
|
1675
1096
|
}
|
|
1676
1097
|
sp--;
|
|
1677
1098
|
|
|
@@ -1681,41 +1102,18 @@ static char * parse_line( void)
|
|
|
1681
1102
|
case '/':
|
|
1682
1103
|
switch (*sp++) {
|
|
1683
1104
|
case '*': /* Start of a comment */
|
|
1684
|
-
com_start:
|
|
1685
1105
|
if ((sp = read_a_comment( sp, &com_size)) == NULL) {
|
|
1686
1106
|
free( temp); /* End of file with un- */
|
|
1687
1107
|
return NULL; /* terminated comment */
|
|
1688
1108
|
}
|
|
1689
|
-
if (
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
while (com_size--)
|
|
1693
|
-
*tp++ = ' '; /* Spaces of the comment length */
|
|
1694
|
-
break;
|
|
1695
|
-
}
|
|
1696
|
-
switch (mcpp_mode) {
|
|
1697
|
-
case POST_STD:
|
|
1698
|
-
if (temp < tp && *(tp - 1) != ' ')
|
|
1699
|
-
*tp++ = ' '; /* Squeeze white spaces */
|
|
1700
|
-
break;
|
|
1701
|
-
case OLD_PREP:
|
|
1702
|
-
if (temp == tp
|
|
1703
|
-
|| ! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
|
|
1704
|
-
*tp++ = COM_SEP; /* Convert to magic character */
|
|
1705
|
-
break;
|
|
1706
|
-
default:
|
|
1707
|
-
if (temp == tp ||
|
|
1708
|
-
! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
|
|
1709
|
-
*tp++ = ' '; /* Squeeze white spaces */
|
|
1710
|
-
break;
|
|
1711
|
-
}
|
|
1109
|
+
if (temp == tp ||
|
|
1110
|
+
! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
|
|
1111
|
+
*tp++ = ' '; /* Squeeze white spaces */
|
|
1712
1112
|
break;
|
|
1713
1113
|
case '/': /* // */
|
|
1714
|
-
if (! standard)
|
|
1715
|
-
goto not_comment;
|
|
1716
1114
|
/* Comment when C++ or __STDC_VERSION__ >= 199901L */
|
|
1717
1115
|
/* Need not to convert to a space because '\n' follows */
|
|
1718
|
-
if (
|
|
1116
|
+
if ((warn_level & 2))
|
|
1719
1117
|
cwarn( "Parsed \"//\" as comment" /* _W2_ */
|
|
1720
1118
|
, NULL, 0L, NULL);
|
|
1721
1119
|
if (keep_comments) {
|
|
@@ -1727,7 +1125,6 @@ com_start:
|
|
|
1727
1125
|
}
|
|
1728
1126
|
goto end_line;
|
|
1729
1127
|
default: /* Not a comment */
|
|
1730
|
-
not_comment:
|
|
1731
1128
|
*tp++ = '/';
|
|
1732
1129
|
sp--; /* To re-read */
|
|
1733
1130
|
break;
|
|
@@ -1742,27 +1139,14 @@ not_comment:
|
|
|
1742
1139
|
, NULL, (long) c, NULL);
|
|
1743
1140
|
case '\t': /* Horizontal space */
|
|
1744
1141
|
case ' ':
|
|
1745
|
-
if (
|
|
1746
|
-
if (c == '\t')
|
|
1747
|
-
*tp++ = '\t';
|
|
1748
|
-
else
|
|
1749
|
-
*tp++ = ' '; /* Convert to ' ' */
|
|
1750
|
-
} else if (! (char_type[ *(tp - 1) & UCHARMAX] & HSP)) {
|
|
1142
|
+
if (! (char_type[ *(tp - 1) & UCHARMAX] & HSP)) {
|
|
1751
1143
|
*tp++ = ' '; /* Squeeze white spaces */
|
|
1752
|
-
} else if (mcpp_mode == OLD_PREP && *(tp - 1) == COM_SEP) {
|
|
1753
|
-
*(tp - 1) = ' '; /* Replace COM_SEP with ' ' */
|
|
1754
1144
|
}
|
|
1755
1145
|
break;
|
|
1756
1146
|
case '"': /* String literal */
|
|
1757
1147
|
case '\'': /* Character constant */
|
|
1758
1148
|
infile->bptr = sp;
|
|
1759
|
-
|
|
1760
|
-
tp = scan_quote( c, tp, limit, TRUE);
|
|
1761
|
-
} else {
|
|
1762
|
-
in_string = TRUE; /* Enable line splicing by scan_quote() */
|
|
1763
|
-
tp = scan_quote( c, tp, limit, TRUE); /* (not by get_ch())*/
|
|
1764
|
-
in_string = FALSE;
|
|
1765
|
-
}
|
|
1149
|
+
tp = scan_quote( c, tp, limit, TRUE);
|
|
1766
1150
|
if (tp == NULL) {
|
|
1767
1151
|
free( temp); /* Unbalanced quotation */
|
|
1768
1152
|
return parse_line(); /* Skip the line */
|
|
@@ -1799,7 +1183,7 @@ end_line:
|
|
|
1799
1183
|
while (char_type[ *temp & UCHARMAX] & HSP)
|
|
1800
1184
|
temp++;
|
|
1801
1185
|
if (*temp == '#' /* This line starts with # token */
|
|
1802
|
-
|| (
|
|
1186
|
+
|| (*temp == '%' && *(temp + 1) == ':'))
|
|
1803
1187
|
if (warn_level & 1)
|
|
1804
1188
|
cwarn(
|
|
1805
1189
|
"Macro started at line %.0s%ld swallowed directive-like line" /* _W1_ */
|
|
@@ -1820,10 +1204,6 @@ static char * read_a_comment(
|
|
|
1820
1204
|
char * saved_sp;
|
|
1821
1205
|
int cat_line = 0; /* Number of catenated lines */
|
|
1822
1206
|
|
|
1823
|
-
if (keep_spaces) {
|
|
1824
|
-
saved_sp = sp - 2; /* '-2' for beginning / and * */
|
|
1825
|
-
*sizp = 0;
|
|
1826
|
-
}
|
|
1827
1207
|
if (keep_comments) /* If writing comments */
|
|
1828
1208
|
mcpp_fputs( "/*", OUT); /* Write the initializer*/
|
|
1829
1209
|
c = *sp++;
|
|
@@ -1850,8 +1230,6 @@ static char * read_a_comment(
|
|
|
1850
1230
|
/* trouble on some other tools such as rpcgen. */
|
|
1851
1231
|
wrong_line = TRUE;
|
|
1852
1232
|
}
|
|
1853
|
-
if (keep_spaces) /* Save the length */
|
|
1854
|
-
*sizp = *sizp + (sp - saved_sp);
|
|
1855
1233
|
if ((mcpp_debug & MACRO_CALL) && compiling) {
|
|
1856
1234
|
if (cat_line) {
|
|
1857
1235
|
cat_line++;
|
|
@@ -1864,8 +1242,6 @@ static char * read_a_comment(
|
|
|
1864
1242
|
}
|
|
1865
1243
|
return sp; /* End of comment */
|
|
1866
1244
|
case '\n': /* Line-crossing comment*/
|
|
1867
|
-
if (keep_spaces) /* Save the length */
|
|
1868
|
-
*sizp = *sizp + (sp - saved_sp) - 1; /* '-1' for '\n' */
|
|
1869
1245
|
if ((mcpp_debug & MACRO_CALL) && compiling) {
|
|
1870
1246
|
/* Save location informations */
|
|
1871
1247
|
if (cat_line == 0) /* First line of catenation */
|
|
@@ -1916,11 +1292,7 @@ static char * get_line(
|
|
|
1916
1292
|
* Convert [CR+LF] to [LF].
|
|
1917
1293
|
*/
|
|
1918
1294
|
{
|
|
1919
|
-
#if COMPILER == INDEPENDENT
|
|
1920
1295
|
#define cr_warn_level 1
|
|
1921
|
-
#else
|
|
1922
|
-
#define cr_warn_level 2
|
|
1923
|
-
#endif
|
|
1924
1296
|
static int cr_converted;
|
|
1925
1297
|
int converted = FALSE;
|
|
1926
1298
|
int len; /* Line length - alpha */
|
|
@@ -1937,7 +1309,7 @@ static char * get_line(
|
|
|
1937
1309
|
!= NULL) {
|
|
1938
1310
|
/* Translation phase 1 */
|
|
1939
1311
|
src_line++; /* Gotten next physical line */
|
|
1940
|
-
if (
|
|
1312
|
+
if (src_line == std_limits.line_num + 1
|
|
1941
1313
|
&& (warn_level & 1))
|
|
1942
1314
|
cwarn( "Line number %.0s\"%ld\" got beyond range" /* _W1_ */
|
|
1943
1315
|
, NULL, src_line, NULL);
|
|
@@ -1967,40 +1339,34 @@ static char * get_line(
|
|
|
1967
1339
|
cr_converted = TRUE;
|
|
1968
1340
|
}
|
|
1969
1341
|
}
|
|
1970
|
-
if (
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
if (
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
if (cat_line < MAX_CAT_LINE)
|
|
1989
|
-
/* Record the catenated length */
|
|
1990
|
-
bsl_cat_line.len[ ++cat_line]
|
|
1991
|
-
= strlen( infile->buffer) - 2;
|
|
1992
|
-
/* Else ignore */
|
|
1993
|
-
}
|
|
1994
|
-
continue;
|
|
1342
|
+
if (converted)
|
|
1343
|
+
len = strlen( ptr);
|
|
1344
|
+
/* Translation phase 2 */
|
|
1345
|
+
len -= 2;
|
|
1346
|
+
if (len >= 0) {
|
|
1347
|
+
if (*(ptr + len) == '\\') {
|
|
1348
|
+
/* <backslash><newline> (not MBCHAR) */
|
|
1349
|
+
ptr = infile->bptr += len; /* Splice the lines */
|
|
1350
|
+
wrong_line = TRUE;
|
|
1351
|
+
if ((mcpp_debug & MACRO_CALL) && compiling) {
|
|
1352
|
+
/* Save location informations */
|
|
1353
|
+
if (cat_line == 0) /* First line of catenation */
|
|
1354
|
+
bsl_cat_line.start_line = src_line;
|
|
1355
|
+
if (cat_line < MAX_CAT_LINE)
|
|
1356
|
+
/* Record the catenated length */
|
|
1357
|
+
bsl_cat_line.len[ ++cat_line]
|
|
1358
|
+
= strlen( infile->buffer) - 2;
|
|
1359
|
+
/* Else ignore */
|
|
1995
1360
|
}
|
|
1361
|
+
continue;
|
|
1996
1362
|
}
|
|
1363
|
+
}
|
|
1997
1364
|
#if NBUFF-2 > SLEN90MIN
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
1365
|
+
if (ptr - infile->buffer + len + 2 > std_limits.str_len + 1
|
|
1366
|
+
&& (warn_level & 4)) /* +1 for '\n' */
|
|
1367
|
+
cwarn( "Logical source line longer than %.0s%ld bytes" /* _W4_ */
|
|
1368
|
+
, NULL, std_limits.str_len, NULL);
|
|
2002
1369
|
#endif
|
|
2003
|
-
}
|
|
2004
1370
|
if ((mcpp_debug & MACRO_CALL) && compiling) {
|
|
2005
1371
|
if (cat_line && cat_line < MAX_CAT_LINE) {
|
|
2006
1372
|
bsl_cat_line.len[ ++cat_line] = strlen( infile->buffer) - 1;
|
|
@@ -2016,98 +1382,9 @@ static char * get_line(
|
|
|
2016
1382
|
cfatal( "File read error", NULL, 0L, NULL); /* _F_ */
|
|
2017
1383
|
if ((ptr = at_eof( in_comment)) != NULL) /* Check at end of file */
|
|
2018
1384
|
return ptr; /* Partial line supplemented */
|
|
2019
|
-
if (option_flags.z) {
|
|
2020
|
-
no_output--; /* End of included file */
|
|
2021
|
-
keep_comments = option_flags.c && compiling && !no_output;
|
|
2022
|
-
}
|
|
2023
1385
|
return NULL;
|
|
2024
1386
|
}
|
|
2025
1387
|
|
|
2026
|
-
#define TRIOFFSET 10
|
|
2027
|
-
|
|
2028
|
-
int cnv_trigraph(
|
|
2029
|
-
char * in
|
|
2030
|
-
)
|
|
2031
|
-
/*
|
|
2032
|
-
* Perform in-place trigraph replacement on a physical line. This was added
|
|
2033
|
-
* to the C90. In an input text line, the sequence ??[something] is
|
|
2034
|
-
* transformed to a character (which might not appear on the input keyboard).
|
|
2035
|
-
*/
|
|
2036
|
-
{
|
|
2037
|
-
const char * const tritext = "=(/)'<!>-\0#[\\]^{|}~";
|
|
2038
|
-
/* ^ ^
|
|
2039
|
-
* +----------+
|
|
2040
|
-
* this becomes this
|
|
2041
|
-
*/
|
|
2042
|
-
int count = 0;
|
|
2043
|
-
const char * tp;
|
|
2044
|
-
|
|
2045
|
-
while ((in = strchr( in, '?')) != NULL) {
|
|
2046
|
-
if (*++in != '?')
|
|
2047
|
-
continue;
|
|
2048
|
-
while (*++in == '?')
|
|
2049
|
-
;
|
|
2050
|
-
if ((tp = strchr( tritext, *in)) == NULL)
|
|
2051
|
-
continue;
|
|
2052
|
-
*(in - 2) = *(tp + TRIOFFSET);
|
|
2053
|
-
in--;
|
|
2054
|
-
memmove( in, in + 2, strlen( in + 1));
|
|
2055
|
-
count++;
|
|
2056
|
-
}
|
|
2057
|
-
|
|
2058
|
-
if (count && (warn_level & 16))
|
|
2059
|
-
cwarn( "%.0s%ld trigraph(s) converted" /* _W16_ */
|
|
2060
|
-
, NULL, (long) count, NULL);
|
|
2061
|
-
return count;
|
|
2062
|
-
}
|
|
2063
|
-
|
|
2064
|
-
int cnv_digraph(
|
|
2065
|
-
char * in
|
|
2066
|
-
)
|
|
2067
|
-
/*
|
|
2068
|
-
* Perform in-place digraph replacement on a physical line.
|
|
2069
|
-
* Called only in POST_STD mode.
|
|
2070
|
-
*/
|
|
2071
|
-
{
|
|
2072
|
-
int count = 0;
|
|
2073
|
-
int i;
|
|
2074
|
-
int c1, c2;
|
|
2075
|
-
|
|
2076
|
-
while ((i = strcspn( in, "%:<")), (c1 = *(in + i)) != '\0') {
|
|
2077
|
-
in += i + 1;
|
|
2078
|
-
c2 = *in;
|
|
2079
|
-
switch (c1) {
|
|
2080
|
-
case '%' :
|
|
2081
|
-
switch (c2) {
|
|
2082
|
-
case ':' : *(in - 1) = '#'; break;
|
|
2083
|
-
case '>' : *(in - 1) = '}'; break;
|
|
2084
|
-
default : continue;
|
|
2085
|
-
}
|
|
2086
|
-
break;
|
|
2087
|
-
case ':' :
|
|
2088
|
-
switch (c2) {
|
|
2089
|
-
case '>' : *(in - 1) = ']'; break;
|
|
2090
|
-
default : continue;
|
|
2091
|
-
}
|
|
2092
|
-
break;
|
|
2093
|
-
case '<' :
|
|
2094
|
-
switch (c2) {
|
|
2095
|
-
case '%' : *(in - 1) = '{'; break;
|
|
2096
|
-
case ':' : *(in - 1) = '['; break;
|
|
2097
|
-
default : continue;
|
|
2098
|
-
}
|
|
2099
|
-
break;
|
|
2100
|
-
}
|
|
2101
|
-
memmove( in, in + 1, strlen( in));
|
|
2102
|
-
count++;
|
|
2103
|
-
}
|
|
2104
|
-
|
|
2105
|
-
if (count && (warn_level & 16))
|
|
2106
|
-
cwarn( "%.0s%ld digraph(s) converted" /* _W16_ */
|
|
2107
|
-
, NULL, (long) count, NULL);
|
|
2108
|
-
return count;
|
|
2109
|
-
}
|
|
2110
|
-
|
|
2111
1388
|
static char * at_eof(
|
|
2112
1389
|
int in_comment
|
|
2113
1390
|
)
|
|
@@ -2131,8 +1408,6 @@ static char * at_eof(
|
|
|
2131
1408
|
const char * const unterm_com
|
|
2132
1409
|
= "unterminated comment, terminated the comment"; /* _W1_ */
|
|
2133
1410
|
const char * const backsl = "\\, deleted the \\"; /* _W1_ */
|
|
2134
|
-
const char * const unterm_asm_format
|
|
2135
|
-
= "End of %s with unterminated #asm block started at line %ld"; /* _E_ _W1_ */
|
|
2136
1411
|
size_t len;
|
|
2137
1412
|
char * cp;
|
|
2138
1413
|
|
|
@@ -2141,11 +1416,11 @@ static char * at_eof(
|
|
|
2141
1416
|
if (len && *(cp += (len - 1)) != '\n') {
|
|
2142
1417
|
*++cp = '\n'; /* Supplement <newline> */
|
|
2143
1418
|
*++cp = EOS;
|
|
2144
|
-
if (
|
|
1419
|
+
if ((warn_level & 1))
|
|
2145
1420
|
cwarn( format, input, 0L, no_newline);
|
|
2146
1421
|
return infile->bptr = infile->buffer;
|
|
2147
1422
|
}
|
|
2148
|
-
if (
|
|
1423
|
+
if (infile->buffer < infile->bptr) {
|
|
2149
1424
|
/* No line after <backslash><newline> */
|
|
2150
1425
|
cp = infile->bptr;
|
|
2151
1426
|
*cp++ = '\n'; /* Delete the \\ */
|
|
@@ -2155,7 +1430,7 @@ static char * at_eof(
|
|
|
2155
1430
|
return infile->bptr = infile->buffer;
|
|
2156
1431
|
}
|
|
2157
1432
|
if (in_comment) { /* End of file within a comment */
|
|
2158
|
-
if (
|
|
1433
|
+
if ((warn_level & 1))
|
|
2159
1434
|
cwarn( format, input, 0L, unterm_com);
|
|
2160
1435
|
/* The partial comment line has been already read by */
|
|
2161
1436
|
/* read_a_comment(), so supplement the next line. */
|
|
@@ -2165,28 +1440,17 @@ static char * at_eof(
|
|
|
2165
1440
|
|
|
2166
1441
|
if (infile->initif < ifptr) {
|
|
2167
1442
|
IFINFO * ifp = infile->initif + 1;
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
compiling = ifptr->stat; /* erroneous grouping */
|
|
2172
|
-
} else if (mcpp_mode == KR && (warn_level & 1)) {
|
|
2173
|
-
cwarn( unterm_if_format, input, ifp->ifline, NULL);
|
|
2174
|
-
}
|
|
1443
|
+
cerror( unterm_if_format, input, ifp->ifline, NULL);
|
|
1444
|
+
ifptr = infile->initif; /* Clear information of */
|
|
1445
|
+
compiling = ifptr->stat; /* erroneous grouping */
|
|
2175
1446
|
}
|
|
2176
1447
|
|
|
2177
1448
|
if (macro_line != 0 && macro_line != MACRO_ERROR
|
|
2178
|
-
&&
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
macro_line = MACRO_ERROR;
|
|
2182
|
-
} else if (warn_level & 1) {
|
|
2183
|
-
cwarn( unterm_macro_format, input, macro_line, NULL);
|
|
2184
|
-
}
|
|
1449
|
+
&& in_getarg) {
|
|
1450
|
+
cerror( unterm_macro_format, input, macro_line, NULL);
|
|
1451
|
+
macro_line = MACRO_ERROR;
|
|
2185
1452
|
}
|
|
2186
1453
|
|
|
2187
|
-
if (in_asm && mcpp_mode == KR && (warn_level & 1))
|
|
2188
|
-
cwarn( unterm_asm_format, input, in_asm, NULL);
|
|
2189
|
-
|
|
2190
1454
|
return NULL;
|
|
2191
1455
|
}
|
|
2192
1456
|
|
|
@@ -2204,19 +1468,6 @@ void unget_ch( void)
|
|
|
2204
1468
|
}
|
|
2205
1469
|
|
|
2206
1470
|
if (infile != NULL) {
|
|
2207
|
-
if (mcpp_mode == POST_STD && infile->fp) {
|
|
2208
|
-
switch (insert_sep) {
|
|
2209
|
-
case INSERTED_SEP: /* Have just read an inserted separator */
|
|
2210
|
-
insert_sep = INSERT_SEP;
|
|
2211
|
-
return;
|
|
2212
|
-
case INSERT_SEP:
|
|
2213
|
-
cfatal( "Bug: unget_ch() just after scan_token()" /* _F_ */
|
|
2214
|
-
, NULL, 0L, NULL);
|
|
2215
|
-
break;
|
|
2216
|
-
default:
|
|
2217
|
-
break;
|
|
2218
|
-
}
|
|
2219
|
-
}
|
|
2220
1471
|
--infile->bptr;
|
|
2221
1472
|
if (infile->bptr < infile->buffer) /* Shouldn't happen */
|
|
2222
1473
|
cfatal( "Bug: Too much pushback", NULL, 0L, NULL); /* _F_ */
|
|
@@ -2304,18 +1555,14 @@ FILEINFO * get_file(
|
|
|
2304
1555
|
} else {
|
|
2305
1556
|
file->src_dir = NULL;
|
|
2306
1557
|
}
|
|
2307
|
-
#if MCPP_LIB
|
|
2308
1558
|
file->last_fputc = mcpp_lib_fputc;
|
|
2309
1559
|
file->last_fputs = mcpp_lib_fputs;
|
|
2310
1560
|
file->last_fprintf = mcpp_lib_fprintf;
|
|
2311
|
-
#endif
|
|
2312
1561
|
if (infile != NULL) { /* If #include file */
|
|
2313
1562
|
infile->line = src_line; /* Save current line */
|
|
2314
|
-
#if MCPP_LIB
|
|
2315
1563
|
infile->last_fputc = mcpp_fputc;
|
|
2316
1564
|
infile->last_fputs = mcpp_fputs;
|
|
2317
1565
|
infile->last_fprintf = mcpp_fprintf;
|
|
2318
|
-
#endif
|
|
2319
1566
|
}
|
|
2320
1567
|
infile = file; /* New current file */
|
|
2321
1568
|
|
|
@@ -2409,23 +1656,6 @@ LINE_COL * get_src_location(
|
|
|
2409
1656
|
return p_line_col;
|
|
2410
1657
|
}
|
|
2411
1658
|
|
|
2412
|
-
static void put_line(
|
|
2413
|
-
char * out,
|
|
2414
|
-
FILE * fp
|
|
2415
|
-
)
|
|
2416
|
-
/*
|
|
2417
|
-
* Put out a logical source line.
|
|
2418
|
-
* This routine is called only in OLD_PREP mode.
|
|
2419
|
-
*/
|
|
2420
|
-
{
|
|
2421
|
-
int c;
|
|
2422
|
-
|
|
2423
|
-
while ((c = *out++) != EOS) {
|
|
2424
|
-
if (c != COM_SEP) /* Skip 0-length comment */
|
|
2425
|
-
mcpp_fputc( c, FP2DEST( fp));
|
|
2426
|
-
}
|
|
2427
|
-
}
|
|
2428
|
-
|
|
2429
1659
|
static void do_msg(
|
|
2430
1660
|
const char * severity, /* "fatal", "error", "warning" */
|
|
2431
1661
|
const char * format, /* Format for the error message */
|
|
@@ -2468,45 +1698,27 @@ static void do_msg(
|
|
|
2468
1698
|
while ((c = *sp++) != EOS) {
|
|
2469
1699
|
switch (c) {
|
|
2470
1700
|
case TOK_SEP:
|
|
2471
|
-
if (mcpp_mode == OLD_PREP) /* COM_SEP */
|
|
2472
|
-
break; /* Skip magic characters */
|
|
2473
|
-
/* Else fall through */
|
|
2474
1701
|
case RT_END:
|
|
2475
1702
|
case CAT:
|
|
2476
1703
|
case ST_QUOTE:
|
|
2477
1704
|
case DEF_MAGIC:
|
|
2478
|
-
if (! standard)
|
|
2479
|
-
*tp++ = ' ';
|
|
2480
1705
|
break; /* Skip the magic characters*/
|
|
2481
1706
|
case IN_SRC:
|
|
2482
|
-
if (! standard)
|
|
2483
|
-
*tp++ = ' ';
|
|
2484
1707
|
if ((mcpp_debug & MACRO_CALL) && ! in_directive)
|
|
2485
1708
|
sp += 2; /* Skip two more bytes */
|
|
2486
1709
|
break;
|
|
2487
1710
|
case MAC_INF:
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
case MAC_ARG_END :
|
|
2500
|
-
if (! option_flags.v)
|
|
2501
|
-
break;
|
|
2502
|
-
else
|
|
2503
|
-
sp++;
|
|
2504
|
-
/* Fall through */
|
|
2505
|
-
case MAC_CALL_END :
|
|
2506
|
-
if (option_flags.v)
|
|
2507
|
-
sp += 2;
|
|
2508
|
-
break;
|
|
2509
|
-
}
|
|
1711
|
+
switch (*sp++) { /* Skip the magic characters*/
|
|
1712
|
+
case MAC_ARG_START :
|
|
1713
|
+
sp++;
|
|
1714
|
+
/* Fall through */
|
|
1715
|
+
case MAC_CALL_START :
|
|
1716
|
+
sp += 2;
|
|
1717
|
+
break;
|
|
1718
|
+
case MAC_ARG_END :
|
|
1719
|
+
break;
|
|
1720
|
+
case MAC_CALL_END :
|
|
1721
|
+
break;
|
|
2510
1722
|
}
|
|
2511
1723
|
break;
|
|
2512
1724
|
case '\n':
|
|
@@ -2533,19 +1745,12 @@ static void do_msg(
|
|
|
2533
1745
|
}
|
|
2534
1746
|
mcpp_fprintf( ERR, format, arg_t[ 0], arg2, arg_t[ 1]);
|
|
2535
1747
|
mcpp_fputc( '\n', ERR);
|
|
2536
|
-
if (option_flags.no_source_line)
|
|
2537
|
-
goto free_arg;
|
|
2538
1748
|
|
|
2539
1749
|
/* Print source line, includers and expanding macros */
|
|
2540
1750
|
file = infile;
|
|
2541
1751
|
if (file != NULL && file->fp != NULL) {
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
put_line( file->buffer, fp_err);
|
|
2545
|
-
} else {
|
|
2546
|
-
mcpp_fprintf( ERR, " %s", file->buffer);
|
|
2547
|
-
/* Current source line */
|
|
2548
|
-
}
|
|
1752
|
+
mcpp_fprintf( ERR, " %s", file->buffer);
|
|
1753
|
+
/* Current source line */
|
|
2549
1754
|
file = file->parent;
|
|
2550
1755
|
}
|
|
2551
1756
|
while (file != NULL) { /* Print #includes, too */
|
|
@@ -2561,17 +1766,11 @@ static void do_msg(
|
|
|
2561
1766
|
} else { /* Source file */
|
|
2562
1767
|
if (file->buffer[ 0] == '\0')
|
|
2563
1768
|
strcpy( file->buffer, "\n");
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
file->buffer); /* The source line */
|
|
2570
|
-
} else {
|
|
2571
|
-
mcpp_fprintf( ERR, " from %s: %ld: ", file->full_fname
|
|
2572
|
-
, file->line);
|
|
2573
|
-
put_line( file->buffer, fp_err);
|
|
2574
|
-
}
|
|
1769
|
+
mcpp_fprintf( ERR, " from %s: %ld: %s",
|
|
1770
|
+
file->line ? file->full_fname /* Full-path-list */
|
|
1771
|
+
: "<stdin>", /* Included by -include */
|
|
1772
|
+
file->line, /* Current line number */
|
|
1773
|
+
file->buffer); /* The source line */
|
|
2575
1774
|
}
|
|
2576
1775
|
file = file->parent;
|
|
2577
1776
|
}
|
|
@@ -2681,12 +1880,11 @@ void dump_string(
|
|
|
2681
1880
|
mcpp_fprintf( DBG, "<%d>", c);
|
|
2682
1881
|
break;
|
|
2683
1882
|
case MAC_INF:
|
|
2684
|
-
if (! (
|
|
1883
|
+
if (! ((mcpp_debug & MACRO_CALL)))
|
|
2685
1884
|
goto no_magic;
|
|
2686
1885
|
/* Macro informations inserted by -K option */
|
|
2687
1886
|
c2 = *cp++ & UCHARMAX;
|
|
2688
|
-
if (
|
|
2689
|
-
|| c2 == MAC_ARG_START) {
|
|
1887
|
+
if (c2 == MAC_CALL_START || c2 == MAC_ARG_START) {
|
|
2690
1888
|
c = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
|
|
2691
1889
|
c += (*cp++ & UCHARMAX) - 1;
|
|
2692
1890
|
}
|
|
@@ -2695,67 +1893,42 @@ void dump_string(
|
|
|
2695
1893
|
mcpp_fprintf( DBG, "<MAC%d>", c);
|
|
2696
1894
|
break;
|
|
2697
1895
|
case MAC_CALL_END:
|
|
2698
|
-
|
|
2699
|
-
mcpp_fprintf( DBG, "<MAC_END%d>", c);
|
|
2700
|
-
else
|
|
2701
|
-
chr = "<MAC_END>";
|
|
1896
|
+
chr = "<MAC_END>";
|
|
2702
1897
|
break;
|
|
2703
1898
|
case MAC_ARG_START:
|
|
2704
1899
|
c1 = *cp++ & UCHARMAX;
|
|
2705
1900
|
mcpp_fprintf( DBG, "<MAC%d:ARG%d>", c, c1 - 1);
|
|
2706
1901
|
break;
|
|
2707
1902
|
case MAC_ARG_END:
|
|
2708
|
-
|
|
2709
|
-
c1 = *cp++ & UCHARMAX;
|
|
2710
|
-
mcpp_fprintf( DBG, "<ARG_END%d-%d>", c, c1 - 1);
|
|
2711
|
-
} else {
|
|
2712
|
-
chr = "<ARG_END>";
|
|
2713
|
-
}
|
|
1903
|
+
chr = "<ARG_END>";
|
|
2714
1904
|
break;
|
|
2715
1905
|
}
|
|
2716
1906
|
break;
|
|
2717
1907
|
case DEF_MAGIC:
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
break;
|
|
2721
|
-
} /* Else fall through */
|
|
1908
|
+
chr = "<MAGIC>";
|
|
1909
|
+
break;
|
|
2722
1910
|
case CAT:
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
break;
|
|
2726
|
-
} /* Else fall through */
|
|
1911
|
+
chr = "##";
|
|
1912
|
+
break;
|
|
2727
1913
|
case ST_QUOTE:
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
break;
|
|
2731
|
-
} /* Else fall through */
|
|
1914
|
+
chr = "#";
|
|
1915
|
+
break;
|
|
2732
1916
|
case RT_END:
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
break;
|
|
2736
|
-
} /* Else fall through */
|
|
1917
|
+
chr = "<RT_END>";
|
|
1918
|
+
break;
|
|
2737
1919
|
case IN_SRC:
|
|
2738
|
-
if (
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
chr = "<SRC>";
|
|
2746
|
-
}
|
|
2747
|
-
} else { /* Control character */
|
|
2748
|
-
mcpp_fprintf( DBG, "<^%c>", c + '@');
|
|
1920
|
+
if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
|
|
1921
|
+
int num;
|
|
1922
|
+
num = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
|
|
1923
|
+
num += (*cp++ & UCHARMAX) - 1;
|
|
1924
|
+
mcpp_fprintf( DBG, "<SRC%d>", num);
|
|
1925
|
+
} else {
|
|
1926
|
+
chr = "<SRC>";
|
|
2749
1927
|
}
|
|
2750
1928
|
break;
|
|
2751
1929
|
case TOK_SEP:
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
break;
|
|
2755
|
-
} else if (mcpp_mode == OLD_PREP) { /* COM_SEP */
|
|
2756
|
-
chr = "<CSEP>";
|
|
2757
|
-
break;
|
|
2758
|
-
} /* Else fall through */
|
|
1930
|
+
chr = "<TSEP>";
|
|
1931
|
+
break;
|
|
2759
1932
|
default:
|
|
2760
1933
|
no_magic:
|
|
2761
1934
|
if (c < ' ')
|