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.
Files changed (679) hide show
  1. checksums.yaml +4 -4
  2. data/{ext/ice/BZIP_LICENSE → BZIP2_LICENSE} +0 -0
  3. data/ICE_LICENSE +8 -14
  4. data/LICENSE +2 -1
  5. data/{ext/ice/MCPP_LICENSE → MCPP_LICENSE} +2 -9
  6. data/bin/slice2rb +1 -1
  7. data/ext/Communicator.cpp +1 -1
  8. data/ext/Communicator.h +1 -1
  9. data/ext/Config.h +1 -22
  10. data/ext/Connection.cpp +125 -13
  11. data/ext/Connection.h +1 -1
  12. data/ext/Endpoint.cpp +62 -3
  13. data/ext/Endpoint.h +1 -1
  14. data/ext/ImplicitContext.cpp +1 -1
  15. data/ext/ImplicitContext.h +1 -1
  16. data/ext/Init.cpp +8 -1
  17. data/ext/Logger.cpp +1 -1
  18. data/ext/Logger.h +1 -1
  19. data/ext/ObjectFactory.cpp +1 -1
  20. data/ext/ObjectFactory.h +1 -1
  21. data/ext/Operation.cpp +1 -1
  22. data/ext/Operation.h +1 -1
  23. data/ext/Properties.cpp +1 -1
  24. data/ext/Properties.h +1 -1
  25. data/ext/Proxy.cpp +1 -1
  26. data/ext/Proxy.h +1 -1
  27. data/ext/Slice.cpp +1 -1
  28. data/ext/Slice.h +1 -1
  29. data/ext/Types.cpp +65 -17
  30. data/ext/Types.h +4 -1
  31. data/ext/Util.cpp +49 -58
  32. data/ext/Util.h +1 -1
  33. data/ext/extconf.rb +17 -15
  34. data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/Application.h +1 -1
  36. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
  37. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  38. data/ext/ice/cpp/include/Ice/BasicStream.h +1 -1
  39. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +52 -0
  40. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +25 -0
  41. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  42. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +12 -4
  43. data/ext/ice/cpp/include/Ice/Communicator.h +12 -4
  44. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
  45. data/ext/ice/cpp/include/Ice/CommunicatorF.h +12 -4
  46. data/ext/ice/cpp/include/Ice/Config.h +13 -8
  47. data/ext/ice/cpp/include/Ice/Connection.h +41 -16
  48. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
  49. data/ext/ice/cpp/include/Ice/ConnectionF.h +12 -4
  50. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
  51. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
  52. data/ext/ice/cpp/include/Ice/Current.h +12 -4
  53. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
  54. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
  55. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
  56. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
  57. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  58. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  59. data/ext/ice/cpp/include/Ice/Endpoint.h +16 -6
  60. data/ext/ice/cpp/include/Ice/EndpointF.h +12 -4
  61. data/ext/ice/cpp/include/Ice/EndpointTypes.h +12 -4
  62. data/ext/ice/cpp/include/Ice/Exception.h +3 -3
  63. data/ext/ice/cpp/include/Ice/FacetMap.h +12 -4
  64. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
  65. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  66. data/ext/ice/cpp/include/Ice/Format.h +1 -1
  67. data/ext/ice/cpp/include/Ice/Functional.h +1 -1
  68. data/ext/ice/cpp/include/Ice/GCObject.h +5 -1
  69. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  70. data/ext/ice/cpp/include/Ice/Ice.h +4 -3
  71. data/ext/ice/cpp/include/Ice/Identity.h +13 -5
  72. data/ext/ice/cpp/include/Ice/ImplicitContext.h +12 -4
  73. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +12 -4
  74. data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
  75. data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
  76. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  77. data/ext/ice/cpp/include/Ice/Initialize.h +4 -2
  78. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  79. data/ext/ice/cpp/include/Ice/Instrumentation.h +12 -4
  80. data/ext/ice/cpp/include/Ice/InstrumentationF.h +12 -4
  81. data/ext/ice/cpp/include/Ice/LocalException.h +12 -4
  82. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
  83. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  84. data/ext/ice/cpp/include/Ice/Locator.h +137 -129
  85. data/ext/ice/cpp/include/Ice/LocatorF.h +12 -4
  86. data/ext/ice/cpp/include/Ice/Logger.h +12 -4
  87. data/ext/ice/cpp/include/Ice/LoggerF.h +12 -4
  88. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
  89. data/ext/ice/cpp/include/Ice/Metrics.h +144 -136
  90. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
  91. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
  92. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +35 -26
  93. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
  94. data/ext/ice/cpp/include/Ice/Object.h +1 -1
  95. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +12 -4
  96. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +12 -4
  97. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
  98. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
  99. data/ext/ice/cpp/include/Ice/ObjectFactory.h +12 -4
  100. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +12 -4
  101. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
  102. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  103. data/ext/ice/cpp/include/Ice/Outgoing.h +67 -39
  104. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +31 -34
  105. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +4 -4
  106. data/ext/ice/cpp/include/Ice/Plugin.h +12 -4
  107. data/ext/ice/cpp/include/Ice/PluginF.h +12 -4
  108. data/ext/ice/cpp/include/Ice/Process.h +36 -28
  109. data/ext/ice/cpp/include/Ice/ProcessF.h +12 -4
  110. data/ext/ice/cpp/include/Ice/Properties.h +12 -4
  111. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +86 -78
  112. data/ext/ice/cpp/include/Ice/PropertiesF.h +12 -4
  113. data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
  114. data/ext/ice/cpp/include/Ice/Proxy.h +6 -2
  115. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
  116. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  117. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
  118. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  119. data/ext/ice/cpp/include/Ice/RemoteLogger.h +137 -129
  120. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  121. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  122. data/ext/ice/cpp/include/Ice/Router.h +37 -29
  123. data/ext/ice/cpp/include/Ice/RouterF.h +12 -4
  124. data/ext/ice/cpp/include/Ice/ServantLocator.h +12 -4
  125. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +12 -4
  126. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  127. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  128. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +12 -4
  129. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  130. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -6
  131. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
  132. data/ext/ice/cpp/include/Ice/Stream.h +3 -5
  133. data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
  134. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  135. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  136. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
  137. data/ext/ice/cpp/include/Ice/Version.h +14 -6
  138. data/ext/ice/cpp/include/IceSSL/Config.h +19 -1
  139. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +61 -7
  140. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +52 -5
  141. data/ext/ice/cpp/include/IceSSL/IceSSL.h +2 -2
  142. data/ext/ice/cpp/include/IceSSL/Plugin.h +32 -26
  143. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/Atomic.h +186 -0
  145. data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
  146. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  147. data/ext/ice/cpp/include/IceUtil/Config.h +31 -20
  148. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  149. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
  150. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +9 -2
  151. data/ext/ice/cpp/include/IceUtil/Exception.h +4 -3
  152. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  153. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  154. data/ext/ice/cpp/include/IceUtil/IceUtil.h +2 -2
  155. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
  156. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  157. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  158. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  159. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  160. data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
  161. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  162. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  163. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  164. data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
  165. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  166. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +8 -11
  167. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  168. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +5 -1
  169. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  170. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  171. data/ext/ice/cpp/include/IceUtil/SHA1.h +8 -26
  172. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +5 -5
  173. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  174. data/ext/ice/cpp/include/IceUtil/Shared.h +3 -37
  175. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  176. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  177. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  178. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  179. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
  180. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
  181. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  182. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
  183. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +7 -6
  184. data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
  185. data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
  186. data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
  187. data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
  188. data/ext/ice/cpp/include/Slice/JavaUtil.h +3 -1
  189. data/ext/ice/cpp/include/Slice/ObjCUtil.h +127 -0
  190. data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
  191. data/ext/ice/cpp/include/Slice/Parser.h +18 -12
  192. data/ext/ice/cpp/include/Slice/Preprocessor.h +6 -4
  193. data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
  194. data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
  195. data/ext/ice/cpp/include/Slice/Util.h +20 -2
  196. data/ext/ice/cpp/src/Ice/ACM.cpp +1 -1
  197. data/ext/ice/cpp/src/Ice/ACM.h +1 -1
  198. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  199. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  200. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  201. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  202. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  203. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  204. data/ext/ice/cpp/src/Ice/BasicStream.cpp +7 -5
  205. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +227 -0
  206. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +59 -0
  207. data/ext/ice/cpp/src/Ice/Buffer.cpp +3 -3
  208. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +10 -4
  209. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +82 -282
  210. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +8 -21
  211. data/ext/ice/cpp/src/Ice/Communicator.cpp +11 -5
  212. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +10 -4
  213. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +6 -6
  214. data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +42 -180
  216. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +10 -19
  217. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +25 -0
  218. data/ext/ice/cpp/src/Ice/Connection.cpp +17 -11
  219. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +10 -4
  220. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +137 -51
  221. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +18 -8
  222. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +105 -391
  223. data/ext/ice/cpp/src/Ice/ConnectionI.h +25 -23
  224. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +5 -29
  225. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +3 -8
  226. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  227. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  228. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  229. data/ext/ice/cpp/src/Ice/Current.cpp +10 -4
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
  231. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  232. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  233. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +1 -1
  234. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  235. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +1 -1
  236. data/ext/ice/cpp/src/Ice/Endpoint.cpp +17 -11
  237. data/ext/ice/cpp/src/Ice/EndpointF.cpp +10 -4
  238. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +19 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactory.h +13 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  244. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
  245. data/ext/ice/cpp/src/Ice/EndpointI.h +33 -1
  246. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  247. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +10 -4
  248. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  249. data/ext/ice/cpp/src/Ice/EventHandler.h +4 -1
  250. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  251. data/ext/ice/cpp/src/Ice/Exception.cpp +20 -11
  252. data/ext/ice/cpp/src/Ice/FacetMap.cpp +10 -4
  253. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +2 -2
  255. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  256. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  257. data/ext/ice/cpp/src/Ice/HttpParser.cpp +27 -15
  258. data/ext/ice/cpp/src/Ice/HttpParser.h +4 -6
  259. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +7 -1
  260. data/ext/ice/cpp/src/Ice/IPEndpointI.h +2 -1
  261. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  262. data/ext/ice/cpp/src/Ice/Identity.cpp +11 -5
  263. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +11 -5
  264. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +10 -4
  265. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
  266. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  267. data/ext/ice/cpp/src/Ice/Incoming.cpp +22 -20
  268. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  270. data/ext/ice/cpp/src/Ice/Initialize.cpp +31 -5
  271. data/ext/ice/cpp/src/Ice/Instance.cpp +102 -59
  272. data/ext/ice/cpp/src/Ice/Instance.h +28 -2
  273. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +20 -14
  274. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +10 -4
  275. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  276. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  277. data/ext/ice/cpp/src/Ice/LocalException.cpp +10 -4
  278. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  279. data/ext/ice/cpp/src/Ice/Locator.cpp +83 -77
  280. data/ext/ice/cpp/src/Ice/LocatorF.cpp +10 -4
  281. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +77 -69
  282. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  283. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  284. data/ext/ice/cpp/src/Ice/Logger.cpp +11 -5
  285. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  286. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerF.cpp +10 -4
  288. data/ext/ice/cpp/src/Ice/LoggerI.cpp +10 -8
  289. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  290. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +2 -2
  291. data/ext/ice/cpp/src/Ice/Metrics.cpp +122 -116
  292. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
  293. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  294. data/ext/ice/cpp/src/Ice/Network.cpp +63 -19
  295. data/ext/ice/cpp/src/Ice/Network.h +10 -3
  296. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  297. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  298. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  299. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  300. data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
  301. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +11 -5
  302. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +10 -4
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +9 -9
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +2 -2
  305. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +3 -3
  306. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +5 -5
  307. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +11 -5
  308. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +10 -4
  309. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +9 -10
  310. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
  311. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  312. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +6 -5
  313. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
  314. data/ext/ice/cpp/src/Ice/Outgoing.cpp +209 -254
  315. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +120 -106
  316. data/ext/ice/cpp/src/Ice/Plugin.cpp +12 -6
  317. data/ext/ice/cpp/src/Ice/PluginF.cpp +10 -4
  318. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +21 -2
  319. data/ext/ice/cpp/src/Ice/Process.cpp +25 -19
  320. data/ext/ice/cpp/src/Ice/ProcessF.cpp +10 -4
  321. data/ext/ice/cpp/src/Ice/Properties.cpp +11 -5
  322. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +39 -33
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  325. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +10 -4
  326. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
  327. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
  328. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +12 -8
  329. data/ext/ice/cpp/src/Ice/PropertyNames.h +2 -2
  330. data/ext/ice/cpp/src/Ice/Protocol.cpp +7 -7
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +9 -6
  332. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +25 -7
  333. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  336. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  337. data/ext/ice/cpp/src/Ice/Proxy.cpp +32 -13
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  339. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.cpp +101 -86
  341. data/ext/ice/cpp/src/Ice/Reference.h +16 -9
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
  343. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  344. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPlugins.cpp +28 -0
  346. data/ext/ice/cpp/src/Ice/RegisterPlugins.h +25 -0
  347. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +92 -86
  348. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandler.h +4 -8
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +24 -16
  352. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +5 -4
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  354. data/ext/ice/cpp/src/Ice/ResponseHandler.h +3 -3
  355. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +16 -5
  356. data/ext/ice/cpp/src/Ice/RetryQueue.h +3 -2
  357. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  358. data/ext/ice/cpp/src/Ice/Router.cpp +27 -21
  359. data/ext/ice/cpp/src/Ice/RouterF.cpp +10 -4
  360. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
  361. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
  362. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  363. data/ext/ice/cpp/src/Ice/Selector.cpp +480 -1
  364. data/ext/ice/cpp/src/Ice/Selector.h +130 -1
  365. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +11 -5
  366. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +10 -4
  367. data/ext/ice/cpp/src/Ice/ServantManager.cpp +29 -23
  368. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  369. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  370. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +10 -4
  371. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  372. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
  375. data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
  376. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +30 -22
  377. data/ext/ice/cpp/src/Ice/StreamSocket.h +7 -4
  378. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  380. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +8 -8
  382. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +21 -38
  386. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +5 -6
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +29 -4
  388. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +7 -2
  389. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +2 -2
  390. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  391. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +2 -2
  392. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +16 -7
  395. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  396. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  397. data/ext/ice/cpp/src/Ice/Transceiver.h +2 -1
  398. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  399. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +13 -39
  402. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +2 -5
  403. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +46 -10
  404. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +3 -2
  405. data/ext/ice/cpp/src/Ice/Version.cpp +12 -6
  406. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  407. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  408. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  409. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  410. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +6 -38
  411. data/ext/ice/cpp/src/Ice/WSEndpoint.h +12 -1
  412. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +31 -35
  413. data/ext/ice/cpp/src/Ice/WSTransceiver.h +13 -1
  414. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +66 -60
  415. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +106 -100
  416. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  417. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  418. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +76 -36
  419. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +1 -1
  420. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +19 -6
  421. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +1 -1
  422. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +452 -0
  423. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +732 -0
  424. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +520 -0
  425. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +36 -0
  426. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +8 -8
  427. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  428. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +49 -47
  429. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +13 -5
  430. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
  431. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  432. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +10 -38
  433. data/ext/ice/cpp/src/IceSSL/EndpointI.h +4 -3
  434. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +13 -5
  435. data/ext/ice/cpp/src/IceSSL/Instance.cpp +2 -2
  436. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  437. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  438. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +107 -111
  439. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +130 -47
  440. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +11 -3
  441. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +8 -14
  442. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  443. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  445. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +238 -156
  446. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +93 -66
  447. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +7 -3
  448. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +2 -2
  449. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +32 -35
  450. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  451. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +244 -360
  452. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +59 -29
  453. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +8 -4
  454. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
  455. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  456. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  457. data/ext/ice/cpp/src/IceSSL/Util.cpp +427 -620
  458. data/ext/ice/cpp/src/IceSSL/Util.h +72 -15
  459. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
  460. data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
  461. data/ext/ice/cpp/src/IceUtil/Cond.cpp +1 -1
  462. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  463. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  464. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +1 -1
  465. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  466. data/ext/ice/cpp/src/IceUtil/Exception.cpp +105 -96
  467. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +2 -1
  468. data/ext/ice/cpp/src/IceUtil/FileUtil.h +9 -1
  469. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  470. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  471. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  472. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +12 -25
  473. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  474. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
  475. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +72 -10
  476. data/ext/ice/cpp/src/IceUtil/Shared.cpp +3 -132
  477. data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
  478. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  479. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  480. data/ext/ice/cpp/src/IceUtil/Thread.cpp +16 -1
  481. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  482. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  483. data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
  484. data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
  485. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  486. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  487. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +62 -55
  488. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  489. data/ext/ice/cpp/src/Slice/CsUtil.cpp +8 -29
  490. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
  491. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  492. data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
  493. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  494. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +145 -172
  495. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  496. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  497. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +1310 -0
  498. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  499. data/ext/ice/cpp/src/Slice/Parser.cpp +65 -187
  500. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +61 -9
  501. data/ext/ice/cpp/src/Slice/Python.cpp +36 -3
  502. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +10 -10
  503. data/ext/ice/cpp/src/Slice/Ruby.cpp +34 -3
  504. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +8 -7
  505. data/ext/ice/cpp/src/Slice/Scanner.cpp +1 -1
  506. data/ext/ice/cpp/src/Slice/Util.cpp +137 -30
  507. data/ext/ice/mcpp/LICENSE +29 -0
  508. data/ext/ice/mcpp/Makefile +60 -0
  509. data/ext/ice/mcpp/Makefile.mak +46 -0
  510. data/ext/ice/mcpp/README.md +30 -0
  511. data/ext/ice/mcpp/config.h +89 -0
  512. data/ext/ice/mcpp/configed.H +1 -146
  513. data/ext/ice/mcpp/directive.c +115 -410
  514. data/ext/ice/mcpp/eval.c +38 -377
  515. data/ext/ice/mcpp/expand.c +155 -852
  516. data/ext/ice/mcpp/internal.H +10 -44
  517. data/ext/ice/mcpp/main.c +6 -345
  518. data/ext/ice/mcpp/mbchar.c +17 -654
  519. data/ext/ice/mcpp/mcpp.gyp +62 -0
  520. data/ext/ice/mcpp/support.c +116 -943
  521. data/ext/ice/mcpp/system.H +0 -23
  522. data/ext/ice/mcpp/system.c +81 -2321
  523. data/ice.gemspec +3 -4
  524. data/lib/Glacier2.rb +1 -1
  525. data/lib/Glacier2/Metrics.rb +2 -2
  526. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  527. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  528. data/lib/Glacier2/Router.rb +2 -2
  529. data/lib/Glacier2/RouterF.rb +2 -2
  530. data/lib/Glacier2/SSLInfo.rb +2 -2
  531. data/lib/Glacier2/Session.rb +2 -2
  532. data/lib/Ice.rb +1 -1
  533. data/lib/Ice/BuiltinSequences.rb +2 -2
  534. data/lib/Ice/Communicator.rb +2 -2
  535. data/lib/Ice/CommunicatorF.rb +2 -2
  536. data/lib/Ice/Connection.rb +26 -14
  537. data/lib/Ice/ConnectionF.rb +2 -2
  538. data/lib/Ice/Current.rb +2 -2
  539. data/lib/Ice/Endpoint.rb +4 -2
  540. data/lib/Ice/EndpointF.rb +2 -2
  541. data/lib/Ice/EndpointTypes.rb +2 -2
  542. data/lib/Ice/FacetMap.rb +2 -2
  543. data/lib/Ice/Identity.rb +2 -2
  544. data/lib/Ice/ImplicitContext.rb +2 -2
  545. data/lib/Ice/ImplicitContextF.rb +2 -2
  546. data/lib/Ice/Instrumentation.rb +2 -2
  547. data/lib/Ice/InstrumentationF.rb +2 -2
  548. data/lib/Ice/LocalException.rb +2 -2
  549. data/lib/Ice/Locator.rb +2 -2
  550. data/lib/Ice/LocatorF.rb +2 -2
  551. data/lib/Ice/Logger.rb +2 -2
  552. data/lib/Ice/LoggerF.rb +2 -2
  553. data/lib/Ice/Metrics.rb +2 -2
  554. data/lib/Ice/ObjectAdapterF.rb +2 -2
  555. data/lib/Ice/ObjectFactory.rb +2 -2
  556. data/lib/Ice/ObjectFactoryF.rb +2 -2
  557. data/lib/Ice/Plugin.rb +2 -2
  558. data/lib/Ice/PluginF.rb +2 -2
  559. data/lib/Ice/Process.rb +2 -2
  560. data/lib/Ice/ProcessF.rb +2 -2
  561. data/lib/Ice/Properties.rb +2 -2
  562. data/lib/Ice/PropertiesAdmin.rb +2 -2
  563. data/lib/Ice/PropertiesF.rb +2 -2
  564. data/lib/Ice/Router.rb +2 -2
  565. data/lib/Ice/RouterF.rb +2 -2
  566. data/lib/Ice/SliceChecksumDict.rb +2 -2
  567. data/lib/Ice/Version.rb +2 -2
  568. data/lib/IceBox.rb +1 -1
  569. data/lib/IceBox/IceBox.rb +2 -2
  570. data/lib/IceGrid.rb +1 -1
  571. data/lib/IceGrid/Admin.rb +2 -2
  572. data/lib/IceGrid/Descriptor.rb +2 -2
  573. data/lib/IceGrid/Exception.rb +2 -2
  574. data/lib/IceGrid/FileParser.rb +2 -2
  575. data/lib/IceGrid/Locator.rb +2 -2
  576. data/lib/IceGrid/Observer.rb +2 -2
  577. data/lib/IceGrid/Query.rb +2 -2
  578. data/lib/IceGrid/Registry.rb +2 -2
  579. data/lib/IceGrid/Session.rb +2 -2
  580. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  581. data/lib/IcePatch2.rb +1 -1
  582. data/lib/IcePatch2/FileInfo.rb +52 -2
  583. data/lib/IcePatch2/FileServer.rb +33 -4
  584. data/lib/IceStorm.rb +1 -1
  585. data/lib/IceStorm/IceStorm.rb +2 -2
  586. data/lib/IceStorm/Metrics.rb +2 -2
  587. data/slice/Freeze/BackgroundSaveEvictor.ice +2 -2
  588. data/slice/Freeze/CatalogData.ice +2 -2
  589. data/slice/Freeze/Connection.ice +2 -2
  590. data/slice/Freeze/ConnectionF.ice +2 -2
  591. data/slice/Freeze/DB.ice +2 -2
  592. data/slice/Freeze/Evictor.ice +2 -2
  593. data/slice/Freeze/EvictorF.ice +2 -2
  594. data/slice/Freeze/EvictorStorage.ice +2 -2
  595. data/slice/Freeze/Exception.ice +2 -2
  596. data/slice/Freeze/Transaction.ice +2 -2
  597. data/slice/Freeze/TransactionalEvictor.ice +2 -2
  598. data/slice/Glacier2/Metrics.ice +7 -6
  599. data/slice/Glacier2/PermissionsVerifier.ice +4 -3
  600. data/slice/Glacier2/PermissionsVerifierF.ice +3 -2
  601. data/slice/Glacier2/Router.ice +4 -3
  602. data/slice/Glacier2/RouterF.ice +3 -2
  603. data/slice/Glacier2/SSLInfo.ice +3 -2
  604. data/slice/Glacier2/Session.ice +12 -11
  605. data/slice/Ice/BuiltinSequences.ice +4 -3
  606. data/slice/Ice/Communicator.ice +22 -25
  607. data/slice/Ice/CommunicatorF.ice +3 -2
  608. data/slice/Ice/Connection.ice +39 -11
  609. data/slice/Ice/ConnectionF.ice +3 -2
  610. data/slice/Ice/Current.ice +4 -3
  611. data/slice/Ice/Endpoint.ice +11 -3
  612. data/slice/Ice/EndpointF.ice +3 -2
  613. data/slice/Ice/EndpointTypes.ice +3 -2
  614. data/slice/Ice/FacetMap.ice +3 -2
  615. data/slice/Ice/Identity.ice +3 -2
  616. data/slice/Ice/ImplicitContext.ice +3 -2
  617. data/slice/Ice/ImplicitContextF.ice +3 -2
  618. data/slice/Ice/Instrumentation.ice +4 -2
  619. data/slice/Ice/InstrumentationF.ice +4 -2
  620. data/slice/Ice/LocalException.ice +29 -10
  621. data/slice/Ice/Locator.ice +5 -3
  622. data/slice/Ice/LocatorF.ice +3 -2
  623. data/slice/Ice/Logger.ice +3 -2
  624. data/slice/Ice/LoggerF.ice +3 -2
  625. data/slice/Ice/Metrics.ice +15 -14
  626. data/slice/Ice/ObjectAdapter.ice +5 -4
  627. data/slice/Ice/ObjectAdapterF.ice +3 -2
  628. data/slice/Ice/ObjectFactory.ice +3 -2
  629. data/slice/Ice/ObjectFactoryF.ice +3 -2
  630. data/slice/Ice/Plugin.ice +3 -2
  631. data/slice/Ice/PluginF.ice +3 -2
  632. data/slice/Ice/Process.ice +3 -2
  633. data/slice/Ice/ProcessF.ice +3 -2
  634. data/slice/Ice/Properties.ice +3 -2
  635. data/slice/Ice/PropertiesAdmin.ice +3 -2
  636. data/slice/Ice/PropertiesF.ice +3 -2
  637. data/slice/Ice/RemoteLogger.ice +3 -2
  638. data/slice/Ice/Router.ice +3 -2
  639. data/slice/Ice/RouterF.ice +3 -2
  640. data/slice/Ice/ServantLocator.ice +3 -2
  641. data/slice/Ice/ServantLocatorF.ice +3 -2
  642. data/slice/Ice/SliceChecksumDict.ice +3 -2
  643. data/slice/Ice/Version.ice +3 -2
  644. data/slice/IceBox/IceBox.ice +2 -2
  645. data/slice/IceDiscovery/IceDiscovery.ice +2 -2
  646. data/slice/IceGrid/Admin.ice +49 -48
  647. data/slice/IceGrid/Descriptor.ice +3 -2
  648. data/slice/IceGrid/Exception.ice +6 -5
  649. data/slice/IceGrid/FileParser.ice +4 -3
  650. data/slice/IceGrid/Locator.ice +4 -3
  651. data/slice/IceGrid/Observer.ice +28 -27
  652. data/slice/IceGrid/PluginFacade.ice +3 -2
  653. data/slice/IceGrid/Query.ice +3 -2
  654. data/slice/IceGrid/Registry.ice +4 -3
  655. data/slice/IceGrid/Session.ice +9 -8
  656. data/slice/IceGrid/UserAccountMapper.ice +4 -3
  657. data/slice/{IceGrid/Discovery.ice → IceLocatorDiscovery/IceLocatorDiscovery.ice} +12 -14
  658. data/slice/IcePatch2/FileInfo.ice +31 -2
  659. data/slice/IcePatch2/FileServer.ice +63 -5
  660. data/slice/IceSSL/ConnectionInfo.ice +17 -2
  661. data/slice/IceSSL/EndpointInfo.ice +21 -3
  662. data/slice/IceStorm/IceStorm.ice +3 -2
  663. data/slice/IceStorm/Metrics.ice +4 -3
  664. metadata +27 -23
  665. data/ext/ice/cpp/include/Ice/Makefile +0 -26
  666. data/ext/ice/cpp/include/IceSSL/Makefile +0 -26
  667. data/ext/ice/cpp/include/IceUtil/Makefile +0 -26
  668. data/ext/ice/cpp/include/Slice/Makefile +0 -26
  669. data/ext/ice/cpp/src/Ice/Application.cpp +0 -760
  670. data/ext/ice/cpp/src/Ice/EventLoggerMsg.h +0 -53
  671. data/ext/ice/cpp/src/Ice/Makefile +0 -190
  672. data/ext/ice/cpp/src/Ice/Service.cpp +0 -1897
  673. data/ext/ice/cpp/src/IceDiscovery/Makefile +0 -61
  674. data/ext/ice/cpp/src/IceSSL/Makefile +0 -82
  675. data/ext/ice/cpp/src/IceUtil/Makefile +0 -68
  676. data/ext/ice/cpp/src/Slice/Makefile +0 -65
  677. data/ext/ice/mcpp/config.h.Darwin +0 -227
  678. data/ext/ice/mcpp/config.h.Linux +0 -227
  679. data/ext/ice/mcpp/config.h.MINGW +0 -7
@@ -41,11 +41,7 @@
41
41
 
42
42
  #define SYSTEM_H
43
43
 
44
- #if HAVE_CONFIG_H
45
44
  #include "configed.H"
46
- #else
47
- #include "noconfig.H"
48
- #endif
49
45
 
50
46
  /* Some system has a wrong definition of UCHAR_MAX. See cpp-test.html#5.1.3 */
51
47
  #if UCHARMAX < -255
@@ -168,28 +164,9 @@
168
164
  #define STD 3 /* Standard moce */
169
165
  #define POST_STD 9 /* Special mode of MCPP */
170
166
 
171
- /*
172
- * TRIGRAPHS_INIT Initial value for the -3 option. If TRUE -3
173
- * disables trigraphs, if FALSE -3 enables them.
174
- * DIGRAPHS_INIT Initial value for the -2 option. If TRUE -2
175
- * disables digraphs, if FALSE -2 enables them.
176
- * OK_UCN Enable recognition of Universal-Character-Name sequence
177
- * by -V199901L option.
178
- * OK_MBIDENT Enable multi-byte characters in identifier by -V199901L
179
- * option.
180
- * EXPAND_PRAGMA Enable macro expansion of #pragma line (even in modes
181
- * other than C99).
182
- * expr_t, uexpr_t Type of maximum integer:
183
- * long long (unsigned long long) or longer.
184
- * EXPR_MAX should be defined to the maximum value of uexpr_t.
185
- */
186
- #define TRIGRAPHS_INIT FALSE
187
- #define DIGRAPHS_INIT FALSE
188
167
  #ifndef EXPAND_PRAGMA
189
168
  #define EXPAND_PRAGMA FALSE
190
169
  #endif
191
- #define OK_UCN TRUE
192
- #define OK_MBIDENT FALSE
193
170
 
194
171
  #if HAVE_INTMAX_T
195
172
  #if HAVE_STDINT_H
@@ -36,12 +36,8 @@
36
36
  * 1. specify the constants in "configed.H" or "noconfig.H",
37
37
  * 2. append the system-dependent routines in this file.
38
38
  */
39
- #if PREPROCESSED
40
- #include "mcpp.H"
41
- #else
42
39
  #include "system.H"
43
40
  #include "internal.H"
44
- #endif
45
41
 
46
42
  #if HOST_SYS_FAMILY == SYS_UNIX
47
43
  #include "unistd.h" /* For getcwd(), readlink() */
@@ -110,24 +106,17 @@ static void usage( int opt);
110
106
  /* Putout usage of MCPP */
111
107
  static void set_opt_list( char * optlist);
112
108
  /* Set list of legal option chars */
113
- static int parse_warn_level( const char * mcpp_optarg, int opt);
114
- /* Parse warning level option */
115
109
  static void def_a_macro( int opt, char * def);
116
110
  /* Do a -D option */
117
111
  static void chk_opts( int sflag, int trad);
118
112
  /* Check consistency of options */
119
- #if COMPILER != GNUC
120
- static void init_cpu_macro( int gval, int sse);
121
- /* Predefine CPU-dependent macros */
122
- #endif
123
113
  static void init_predefines( void);
124
114
  /* Set and unset predefined macros */
125
115
  static void init_std_defines( void);
126
116
  /* Predefine Standard macros */
127
117
  static void set_limit( void);
128
118
  /* Set minimum translation limits */
129
- static void set_pragma_op( void);
130
- /* Set the _Pragma() operator */
119
+
131
120
  static void put_info( FILEINFO * sharp_file);
132
121
  /* Print compiler-specific-inf */
133
122
  static char * set_files( int argc, char ** argv, char ** in_pp
@@ -149,15 +138,6 @@ static char * norm_path( const char * dir, const char * fname, int inf
149
138
  static void deref_syml( char * slbuf1, char * slbuf2, char * chk_start);
150
139
  /* Dereference symbolic linked directory and file */
151
140
  #endif
152
- #if COMPILER == GNUC
153
- static void init_gcc_macro( void);
154
- /* Predefine GCC-specific macros */
155
- static void chk_env( void);
156
- /* Check the environment variables */
157
- #elif COMPILER == MSC
158
- static void init_msc_macro( void);
159
- /* Predefine Visual C-specific macros */
160
- #endif
161
141
  static void def_macros( void);
162
142
  /* Define macros specified by -D */
163
143
  static void undef_macros( void);
@@ -179,22 +159,6 @@ static int open_file( const char ** dirp, const char * src_dir
179
159
  /* Open a source file */
180
160
  static const char * set_fname( const char * filename);
181
161
  /* Remember the source filename */
182
- #if SYSTEM == SYS_MAC
183
- #if COMPILER == GNUC
184
- static char * search_header_map( const char * hmap_file
185
- , const char * filename, char * pathlist);
186
- /* Search header map file for a header */
187
- static unsigned hmap_hash( const char * fname);
188
- /* Get hash value for the fname */
189
- #endif
190
- static void init_framework( void);
191
- /* Initialize framework[] */
192
- static int search_framework( char * filename);
193
- /* Search "Framework" directories */
194
- static int search_subdir( char * fullname, char * cp, char * frame
195
- , char * fname, int sys_frame);
196
- /* Search "Headers" and other dirs */
197
- #endif /* SYSTEM == SYS_MAC */
198
162
  #if 0 /* This function is only for debugging use */
199
163
  static int chk_dirp( const char ** dirp);
200
164
  /* Check validity of dirp arg for open_file() */
@@ -213,16 +177,12 @@ static int included( const char * fullname);
213
177
  /* The file has been once included? */
214
178
  static void push_or_pop( int direction);
215
179
  /* Push or pop a macro definition */
216
- static int do_prestd_directive( void);
217
- /* Process pre-Standard directives */
218
180
  static void do_preprocessed( void);
219
181
  /* Process preprocessed file */
220
182
  static int do_debug( int set);
221
183
  /* #pragma MCPP debug, #debug */
222
184
  static void dump_path( void);
223
185
  /* Print include search path */
224
- static void do_asm( int asm_start);
225
- /* Process #asm, #endasm */
226
186
  static int mcpp_getopt( int argc, char * const * argv, const char * opts);
227
187
  /* getopt() to prevent linking of glibc getopt */
228
188
 
@@ -245,7 +205,7 @@ static const char ** incend; /* -> active end of incdir */
245
205
  static int max_inc; /* Number of incdir[] */
246
206
 
247
207
  typedef struct inc_list { /* List of directories or files */
248
- char * name; /* Filename or directory-name */
208
+ char *name; /* Filename or directory-name */
249
209
  size_t len; /* Length of 'name' */
250
210
  } INC_LIST;
251
211
 
@@ -303,58 +263,12 @@ static char * mkdep_mt; /* Argument of -MT option */
303
263
  /* sharp_filename is filename for #line line, used only in cur_file() */
304
264
  static char * sharp_filename = NULL;
305
265
  static char * argv0; /* argv[ 0] for usage() and version() */
306
- static int ansi; /* __STRICT_ANSI__ flag for GNUC */
307
266
  static int compat_mode;
308
267
  /* "Compatible" mode of recursive macro expansion */
309
- #define MAX_ARCH_LEN 16
310
- static char arch[ MAX_ARCH_LEN]; /* -arch or -m64, -m32 options */
311
-
312
- #if COMPILER == GNUC
313
- #define N_QUOTE_DIR 8
314
- /* quote_dir[]: Include directories for "header" specified by -iquote */
315
- /* quote_dir_end: Active end of quote_dir */
316
- static const char * quote_dir[ N_QUOTE_DIR];
317
- static const char ** quote_dir_end = quote_dir;
318
- /* sys_dirp indicates the first directory to search for system headers. */
319
- static const char ** sys_dirp = NULL; /* System header directory */
320
- static const char * sysroot = NULL; /* Logical root directory of header */
321
- static int i_split = FALSE; /* For -I- option */
322
- static int gcc_work_dir = FALSE; /* For -fworking-directory */
323
- static int gcc_maj_ver; /* __GNUC__ */
324
- static int gcc_min_ver; /* __GNUC_MINOR__ */
325
- static int dDflag = FALSE; /* Flag of -dD option */
326
- static int dMflag = FALSE; /* Flag of -dM option */
327
- #endif
328
-
329
- #if COMPILER == GNUC || COMPILER == MSC
330
- /*
331
- * preinclude points to the file specified by -include (-Fl for MSC) option,
332
- * which is included prior to the main input file.
333
- */
334
- #define NPREINCLUDE 8
335
- static char * preinclude[ NPREINCLUDE]; /* File to pre-include */
336
- static char ** preinc_end = preinclude; /* -> active end of preinclude */
337
- #endif
338
-
339
- #if COMPILER == MSC
340
- static int wchar_t_modified = FALSE; /* -Zc:wchar_t flag */
341
- #endif
342
-
343
- #if COMPILER == LCC
344
- static const char * optim_name = "__LCCOPTIMLEVEL";
345
- #endif
346
268
 
347
269
  #if SYSTEM == SYS_CYGWIN
348
270
  static int no_cygwin = FALSE; /* -mno-cygwin */
349
271
 
350
- #elif SYSTEM == SYS_MAC
351
- #define MAX_FRAMEWORK 8
352
- static char * framework[ MAX_FRAMEWORK]; /* Framework directories*/
353
- static int num_framework; /* Current number of framework[] */
354
- static int sys_framework; /* System framework dir */
355
- static const char ** to_search_framework;
356
- /* Search framework[] next to the directory */
357
- static int in_import; /* #import rather than #include */
358
272
  #endif
359
273
 
360
274
  #define NO_DIR FALSE
@@ -363,7 +277,6 @@ static int in_import; /* #import rather than #include */
363
277
  static int no_dir;
364
278
  #endif
365
279
 
366
- #if MCPP_LIB
367
280
  void init_system( void)
368
281
  /* Initialize static variables */
369
282
  {
@@ -373,37 +286,20 @@ void init_system( void)
373
286
  incend = incdir = NULL;
374
287
  fnamelist = once_list = NULL;
375
288
  search_rule = SEARCH_INIT;
376
- mb_changed = nflag = ansi = compat_mode = FALSE;
289
+ mb_changed = nflag = compat_mode = FALSE;
377
290
  mkdep_fp = NULL;
378
291
  mkdep_target = mkdep_mf = mkdep_md = mkdep_mq = mkdep_mt = NULL;
379
292
  std_val = -1L;
380
293
  def_cnt = undef_cnt = 0;
381
294
  mcpp_optind = mcpp_opterr = 1;
382
- #if COMPILER == GNUC
383
- sys_dirp = NULL;
384
- sysroot = NULL;
385
- gcc_work_dir = i_split = FALSE;
386
- quote_dir_end = quote_dir;
387
- dDflag = dMflag = FALSE;
388
- #endif
389
- #if COMPILER == MSC
390
- wchar_t_modified = FALSE;
391
- #endif
392
- #if COMPILER == GNUC || COMPILER == MSC
393
- preinc_end = preinclude;
394
- #endif
395
295
  #if SYSTEM == SYS_CYGWIN
396
296
  no_cygwin = FALSE;
397
- #elif SYSTEM == SYS_MAC
398
- num_framework = sys_framework = 0;
399
- to_search_framework = NULL;
400
297
  #endif
401
298
  #if NO_DIR
402
299
  no_dir = FALSE;
403
300
  #endif
404
301
  }
405
302
 
406
- #endif
407
303
 
408
304
  #define OPTLISTLEN 80
409
305
 
@@ -418,34 +314,17 @@ void do_options(
418
314
  */
419
315
  {
420
316
  char optlist[ OPTLISTLEN]; /* List of option letter*/
421
- const char * warning = "warning: -%c%s option is ignored\n";
422
317
  int opt;
423
318
  int unset_sys_dirs;
424
319
  /* Unset system-specific and site-specific include directories ? */
425
320
  int set_cplus_dir; /* Set C++ include directory ? (for GCC)*/
426
321
  int show_path; /* Show include directory list */
427
- DEFBUF * defp;
428
- VAL_SIGN * valp;
429
322
  int sflag; /* -S option or similar */
430
323
  int trad; /* -traditional */
431
- int old_mode; /* backup of 'mcpp_mode'*/
432
- int gval, sse;
433
- char * cp;
434
324
  int i;
435
- #if COMPILER == GNUC
436
- #define NSYSDIR 8
437
- /* System include directory specified by -isystem */
438
- char * sysdir[ NSYSDIR] = { NULL, };
439
- char ** sysdir_end = sysdir;
440
- int integrated_cpp; /* Flag of cc1 which integrates cpp in it */
441
- #elif COMPILER == LCC
442
- const char * debug_name = "__LCCDEBUGLEVEL";
443
- #endif
444
325
 
445
326
  argv0 = argv[ 0];
446
327
  nflag = unset_sys_dirs = show_path = sflag = trad = FALSE;
447
- arch[ 0] = 0;
448
- gval = sse = 0;
449
328
  set_cplus_dir = TRUE;
450
329
 
451
330
  /* Get current directory for -I option and #pragma once */
@@ -456,19 +335,6 @@ void do_options(
456
335
  sprintf( cur_work_dir + strlen( cur_work_dir), "%c%c", PATH_DELIM, EOS);
457
336
  /* Append trailing path-delimiter */
458
337
 
459
- #if COMPILER == GNUC
460
- defp = look_id( "__GNUC__"); /* Already defined by init_defines() */
461
- gcc_maj_ver = atoi( defp->repl);
462
- defp = look_id( "__GNUC_MINOR__");
463
- gcc_min_ver = atoi( defp->repl);
464
- integrated_cpp = ((gcc_maj_ver == 3 && gcc_min_ver >= 3)
465
- || gcc_maj_ver == 4);
466
- #endif
467
- #if COMPILER == GNUC || COMPILER == MSC
468
- option_flags.dollar_in_name = TRUE;
469
- /* GCC and Visual C allows '$' in name by default */
470
- #endif
471
-
472
338
  set_opt_list( optlist);
473
339
 
474
340
  opt_search: ;
@@ -477,151 +343,10 @@ opt_search: ;
477
343
 
478
344
  switch (opt) { /* Command line option character */
479
345
 
480
- #if COMPILER == GNUC
481
- case '$': /* Forbid '$' in identifier */
482
- option_flags.dollar_in_name = FALSE;
483
- break;
484
- #endif
485
-
486
- case '+':
487
- #if COMPILER == GNUC
488
- plus:
489
- #endif
490
- if (cplus_val || sflag) {
491
- mcpp_fputs( "warning: -+ option is ignored\n", ERR);
492
- break;
493
- }
494
- cplus_val = CPLUS;
495
- break;
496
- #if COMPILER == GNUC
497
- case '-':
498
- if (memcmp( mcpp_optarg, "sysroot", 7) == 0) {
499
- if (mcpp_optarg[ 7] == '=') /* --sysroot=DIR */
500
- sysroot = mcpp_optarg + 8;
501
- else if (mcpp_optarg[ 7] == EOS) /* --sysroot DIR */
502
- sysroot = argv[ mcpp_optind++];
503
- else
504
- usage( opt);
505
- break;
506
- } else {
507
- usage( opt);
508
- }
509
- #endif
510
- case '2': /* Reverse digraphs recognition */
511
- option_flags.dig = ! option_flags.dig;
512
- break;
513
- case '3': /* Reverse trigraph recogniion */
514
- option_flags.trig = ! option_flags.trig;
515
- break;
516
-
517
- case '@': /* Special preprocessing mode */
518
- old_mode = mcpp_mode;
519
- if (str_eq( mcpp_optarg, "post")
520
- || str_eq( mcpp_optarg, "poststd"))
521
- mcpp_mode = POST_STD; /* 'post-Standard' mode */
522
- else if (str_eq( mcpp_optarg, "old")
523
- || str_eq( mcpp_optarg, "oldprep"))
524
- mcpp_mode = OLD_PREP; /* 'old-Preprocessor' mode */
525
- else if (str_eq( mcpp_optarg, "kr"))
526
- mcpp_mode = KR; /* 'K&R 1st' mode */
527
- else if (str_eq( mcpp_optarg, "std"))
528
- mcpp_mode = STD; /* 'Standard' mode (default)*/
529
- else if (str_eq( mcpp_optarg, "compat")) {
530
- compat_mode = TRUE; /* 'compatible' mode */
531
- mcpp_mode = STD;
532
- }
533
- else
534
- usage( opt);
535
- standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
536
- if (old_mode != STD && old_mode != mcpp_mode)
537
- mcpp_fprintf( ERR, "Mode is redefined to: %s\n", mcpp_optarg);
538
- break;
539
-
540
- #if COMPILER == GNUC
541
- case 'A': /* Ignore -A system(gnu), -A cpu(vax) or so */
542
- break;
543
- case 'a':
544
- if (str_eq( mcpp_optarg, "nsi")) { /* -ansi */
545
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF, null
546
- , "1");
547
- ansi = TRUE;
548
- break;
549
- } else if (memcmp( mcpp_optarg, "uxbase", 6) == 0) {
550
- mcpp_optind++;
551
- break; /* Ignore '-auxbase some' or such nonsence */
552
- #if SYSTEM == SYS_MAC
553
- } else if (str_eq( mcpp_optarg, "rch")) { /* -arch */
554
- strcpy( arch, argv[ mcpp_optind++]);
555
- if (str_eq( arch, "ppc") || str_eq( arch, "ppc7400")
556
- || str_eq( arch, "ppc64")
557
- || str_eq( arch, "i386") || str_eq( arch, "i686")
558
- || str_eq( arch, "x86_64") || str_eq( arch, "amd64")) {
559
- if (str_eq( arch, "i686"))
560
- strcpy( arch, "i386");
561
- else if (str_eq( arch, "amd64"))
562
- strcpy( arch, "x86_64");
563
- else if (str_eq( arch, "ppc7400"))
564
- strcpy( arch, "ppc");
565
- break;
566
- } /* Else usage() */
567
- #endif
568
- }
569
- usage( opt);
570
- #elif COMPILER == MSC
571
- case 'a':
572
- if (memcmp( mcpp_optarg, "rch", 3) == 0) {
573
- if (str_eq( mcpp_optarg + 3, ":SSE") /* -arch:SSE */
574
- || str_eq( mcpp_optarg + 3, ":sse"))
575
- sse = 1;
576
- else if (str_eq( mcpp_optarg + 3, ":SSE2") /* -arch:SSE2 */
577
- || str_eq( mcpp_optarg + 3, ":sse2"))
578
- sse = 2;
579
- /* Else ignore */
580
- } else {
581
- usage( opt);
582
- }
583
- break;
584
-
585
- case 'A':
586
- option_flags.lang_asm = TRUE; /* "assembler" source */
587
- break;
588
- #else
589
- case 'a':
590
- option_flags.lang_asm = TRUE; /* "assembler" source */
591
- break;
592
- #endif
593
-
594
- #if ! STD_LINE_PREFIX
595
- case 'b':
596
- std_line_prefix = TRUE; /* Putout line and file infor- */
597
- break; /* mation in C source style. */
598
- #endif
599
-
600
346
  case 'C': /* Keep comments */
601
347
  option_flags.c = TRUE;
602
348
  break;
603
349
 
604
- #if COMPILER == GNUC
605
- case 'c':
606
- if (! integrated_cpp)
607
- usage( opt);
608
- break; /* Else ignore this option */
609
- case 'd':
610
- if (str_eq( mcpp_optarg, "M")) { /* -dM */
611
- dMflag = TRUE;
612
- no_output++;
613
- } else if (str_eq( mcpp_optarg, "D")) { /* -dD */
614
- dDflag = TRUE;
615
- } else if (str_eq( mcpp_optarg, "igraphs")) { /* -digraphs */
616
- option_flags.dig = TRUE;
617
- } else if (str_eq( mcpp_optarg, "umpbase")) { /* -dumpbase */
618
- ; /* Ignore */
619
- } else {
620
- usage( opt);
621
- }
622
- break;
623
- #endif /* COMPILER == GNUC */
624
-
625
350
  case 'D': /* Define symbol */
626
351
  if (def_cnt >= MAX_DEF) {
627
352
  mcpp_fputs( "Too many -D options.\n", ERR);
@@ -631,126 +356,13 @@ plus:
631
356
  break;
632
357
 
633
358
  case 'e':
634
- /* Change the default MBCHAR encoding */
635
- if (set_encoding( mcpp_optarg, FALSE, 0) == NULL)
636
- usage( opt);
637
- mb_changed = TRUE;
359
+ // We support this option, but it does nothing.
638
360
  break;
639
361
 
640
- #if COMPILER == GNUC
641
- case 'E':
642
- if (! integrated_cpp)
643
- usage( opt);
644
- break; /* Ignore this option */
645
- case 'f':
646
- if (memcmp( mcpp_optarg, "input-charset=", 14) == 0) {
647
- /* Treat -finput-charset= as the same option as -e */
648
- if (set_encoding( mcpp_optarg + 14, FALSE, 0) == NULL)
649
- usage( opt);
650
- mb_changed = TRUE;
651
- } else if (str_eq( mcpp_optarg, "working-directory")) {
652
- gcc_work_dir = TRUE;
653
- } else if (str_eq( mcpp_optarg, "no-working-directory")) {
654
- gcc_work_dir = FALSE;
655
- } else if (str_eq( mcpp_optarg, "stack-protector")) {
656
- look_and_install( "__SSP__", DEF_NOARGS_PREDEF, null, "1");
657
- } else if (str_eq( mcpp_optarg, "stack-protector-all")) {
658
- look_and_install( "__SSP_ALL__", DEF_NOARGS_PREDEF, null, "2");
659
- } else if (str_eq( mcpp_optarg, "exceptions")) {
660
- look_and_install( "__EXCEPTIONS", DEF_NOARGS_PREDEF, null
661
- , "1");
662
- } else if (str_eq( mcpp_optarg, "no-exceptions")) {
663
- undef_list[ undef_cnt++] = "__EXCEPTIONS";
664
- } else if (str_eq( mcpp_optarg, "PIC")
665
- || str_eq( mcpp_optarg, "pic")
666
- || str_eq( mcpp_optarg, "PIE")
667
- || str_eq( mcpp_optarg, "pie")) {
668
- look_and_install( "__PIC__", DEF_NOARGS_PREDEF, null, "1");
669
- look_and_install( "__pic__", DEF_NOARGS_PREDEF, null, "1");
670
- } else if (str_eq( mcpp_optarg, "no-dollars-in-identifiers")) {
671
- option_flags.dollar_in_name = FALSE;
672
- } else if (str_eq( mcpp_optarg, "no-show-column")) {
673
- ; /* Ignore this option */
674
- } else if (! integrated_cpp) {
675
- usage( opt);
676
- }
677
- break;
678
-
679
- case 'g':
680
- if (!isdigit( *mcpp_optarg)
681
- && str_eq( argv[ mcpp_optind - 2], "-g"))
682
- /* Neither '-g 0' nor '-ggdb' -- No argument */
683
- mcpp_optind--;
684
- break; /* Ignore the option */
685
- #elif COMPILER == LCC
686
- case 'g': /* Define __LCCDEBUGLEVEL as <n> */
687
- if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg)) {
688
- defp = look_id( debug_name);
689
- strcpy( defp->repl, mcpp_optarg);
690
- } else {
691
- usage( opt);
692
- }
693
- break;
694
- #elif COMPILER == MSC
695
- case 'G':
696
- if (*(mcpp_optarg + 1) == EOS) { /* -Gx */
697
- switch (*mcpp_optarg) {
698
- case '3': case '4': case '5': case '6':
699
- gval = *mcpp_optarg;
700
- break;
701
- case 'B': /* -GB */
702
- gval = '6';
703
- break;
704
- case 'R':
705
- look_and_install( "_CPPRTTI", DEF_NOARGS_PREDEF, null
706
- , "1");
707
- break;
708
- case 'X':
709
- look_and_install( "_CPPUNWIND", DEF_NOARGS_PREDEF, null
710
- , "1");
711
- break;
712
- case 'Z':
713
- look_and_install( "__MSVC_RUNTIME_CHECKS"
714
- , DEF_NOARGS_PREDEF, null, "1");
715
- break;
716
- default :
717
- mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
718
- }
719
- } else {
720
- usage( opt);
721
- }
722
- break;
723
- #endif
724
-
725
- #if SYSTEM == SYS_MAC
726
- case 'F':
727
- framework[ num_framework++] = mcpp_optarg;
728
- break;
729
- #endif
730
-
731
- case 'h':
732
- if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg))
733
- /* a digit */
734
- look_and_install( "__STDC_HOSTED__", DEF_NOARGS_PREDEF, null
735
- , mcpp_optarg);
736
- else
737
- usage( opt);
738
- break;
739
-
740
- #if COMPILER == MSC
741
- case 'X':
742
- unset_sys_dirs = TRUE;
743
- break;
744
- #endif
745
362
  case 'I': /* Include directory */
746
363
  if (str_eq( mcpp_optarg, "-")) { /* -I- */
747
- #if COMPILER == GNUC
748
- sys_dirp = incend; /* Split include directories */
749
- i_split = TRUE;
750
- #else
751
364
  unset_sys_dirs = TRUE;
752
365
  /* Unset pre-specified include directories */
753
- #endif
754
366
  } else if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg)
755
367
  && (i = *mcpp_optarg - '0') != 0
756
368
  && (i & ~(CURRENT | SOURCE)) == 0) {
@@ -760,390 +372,17 @@ plus:
760
372
  }
761
373
  break;
762
374
 
763
- #if COMPILER == MSC
764
- case 'F':
765
- if (str_eq( mcpp_optarg, "l")) { /* -Fl */
766
- if (preinc_end >= &preinclude[ NPREINCLUDE]) {
767
- mcpp_fputs( "Too many -Fl options.\n", ERR);
768
- longjmp( error_exit, -1);
769
- }
770
- *preinc_end++ = argv[ mcpp_optind++];
771
- } else {
772
- usage( opt);
773
- }
774
- break;
775
- #endif
776
-
777
- #if COMPILER == GNUC
778
- case 'i':
779
- if (str_eq( mcpp_optarg, "nclude")) { /* -include */
780
- if (preinc_end >= &preinclude[ NPREINCLUDE]) {
781
- mcpp_fputs( "Too many -include options.\n", ERR);
782
- longjmp( error_exit, -1);
783
- }
784
- *preinc_end++ = argv[ mcpp_optind++];
785
- } else if (str_eq( mcpp_optarg, "system")) { /* -isystem */
786
- if (sysdir_end >= &sysdir[ NSYSDIR]) {
787
- mcpp_fputs( "Too many -isystem options.\n", ERR);
788
- longjmp( error_exit, -1);
789
- }
790
- *sysdir_end++ = argv[ mcpp_optind++];
791
- /* Add the directory before system include directory*/
792
- } else if (str_eq( mcpp_optarg, "quote")) { /* -iquote */
793
- if (quote_dir_end >= &quote_dir[ N_QUOTE_DIR]) {
794
- mcpp_fputs( "Too many -iquote options.\n", ERR);
795
- longjmp( error_exit, -1);
796
- }
797
- *quote_dir_end++ = argv[ mcpp_optind++];
798
- /* Add the directory for #include "header" */
799
- } else if (memcmp( mcpp_optarg, "sysroot", 7) == 0) {
800
- if (mcpp_optarg[ 7] == '=') /* -isysroot=DIR */
801
- sysroot = mcpp_optarg + 8;
802
- else if (mcpp_optarg[ 7] == EOS) /* -isysroot DIR */
803
- sysroot = argv[ mcpp_optind++];
804
- else
805
- usage( opt);
806
- } else if (str_eq( mcpp_optarg, "prefix") /* -iprefix */
807
- || str_eq( mcpp_optarg, "withprefix") /* -iwithprefix */
808
- || str_eq( mcpp_optarg, "withprefixbefore")
809
- /* -iwithprefixbefore */
810
- || str_eq( mcpp_optarg, "dirafter") /* -idirafter */
811
- || str_eq( mcpp_optarg, "multilib")) { /* -imultilib */
812
- mcpp_optind++; /* Skip the argument */
813
- /* Ignore these options */
814
- } else {
815
- usage( opt);
816
- }
817
- break;
818
- #endif
819
-
820
- case 'j':
821
- option_flags.no_source_line = TRUE;
822
- break; /* Do not output the source line in diagnostics */
823
-
824
- #if COMPILER == MSC
825
- case 'J':
826
- look_and_install( "_CHAR_UNSIGNED", DEF_NOARGS_PREDEF, null, "1");
827
- break;
828
- #endif
829
-
830
- case 'K':
831
- mcpp_debug |= MACRO_CALL;
832
- /*
833
- * Putout macro expansion informations embedded in comments.
834
- * Same with '#pragma MCPP debug macro_call'.
835
- */
836
- /* Enable white spaces preservation, too */
837
- /* Fall through */
838
- case 'k':
839
- option_flags.k = TRUE;
840
- /* Keep white spaces of input lines as they are */
841
- break;
842
-
843
- #if COMPILER == GNUC
844
- case 'l':
845
- if (memcmp( mcpp_optarg, "ang-", 4) != 0) {
846
- usage( opt);
847
- } else if (str_eq( mcpp_optarg + 4, "c")) { /* -lang-c */
848
- ; /* Ignore this option */
849
- } else if (str_eq( mcpp_optarg + 4, "c99") /* -lang-c99*/
850
- || str_eq( mcpp_optarg + 4, "c9x")) { /* -lang-c9x*/
851
- if (! sflag) {
852
- stdc_val = 1; /* Define __STDC__ to 1 */
853
- std_val = 199901L;
854
- sflag = TRUE;
855
- }
856
- } else if (str_eq( mcpp_optarg + 4, "c89")) { /* -lang-c89*/
857
- if (! sflag) {
858
- stdc_val = 1; /* Define __STDC__ to 1 */
859
- sflag = TRUE;
860
- }
861
- } else if (str_eq( mcpp_optarg + 4, "c++")) { /* -lang-c++*/
862
- goto plus;
863
- } else if (str_eq( mcpp_optarg + 4, "asm")) { /* -lang-asm*/
864
- option_flags.lang_asm = TRUE;
865
- } else {
866
- usage( opt);
867
- }
868
- break;
869
- #endif /* COMPILER == GNUC */
870
375
 
871
376
  case 'M': /* Output source file dependency line */
872
- if (str_eq( mcpp_optarg, "M")) { /* -MM */
873
- ;
874
- } else if (str_eq( mcpp_optarg, "D")) { /* -MD */
875
- mkdep |= (MD_SYSHEADER | MD_FILE);
876
- } else if (str_eq( mcpp_optarg, "MD")) { /* -MMD */
877
- mkdep |= MD_FILE;
878
- } else if (str_eq( mcpp_optarg, "P")) { /* -MP */
879
- mkdep |= MD_PHONY;
880
- } else if (str_eq( mcpp_optarg, "Q")) { /* -MQ target */
881
- mkdep |= MD_QUOTE;
882
- mkdep_mq = argv[ mcpp_optind++];
883
- } else if (str_eq( mcpp_optarg, "T")) { /* -MT target */
884
- mkdep_mt = argv[ mcpp_optind++];
885
- } else if (str_eq( mcpp_optarg, "F")) { /* -MF file */
886
- mkdep_mf = argv[ mcpp_optind++];
887
- } else if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* -M */
377
+ if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* -M */
888
378
  mkdep |= MD_SYSHEADER;
889
379
  mcpp_optind--;
890
380
  } else {
891
381
  usage( opt);
892
382
  }
893
- if (str_eq( mcpp_optarg, "D") || str_eq( mcpp_optarg, "MD")) {
894
- cp = argv[ mcpp_optind];
895
- if (cp && *cp != '-') /* -MD (-MMD) file */
896
- mkdep_md = argv[ mcpp_optind++];
897
- }
898
383
  mkdep |= MD_MKDEP;
899
384
  break;
900
385
 
901
- #if SYS_FAMILY == SYS_UNIX
902
- case 'm':
903
- if (str_eq( mcpp_optarg, "64")) { /* -m64 */
904
- if (str_eq( CPU, "i386"))
905
- strcpy( arch, "x86_64");
906
- else if (str_eq( CPU, "ppc"))
907
- strcpy( arch, "ppc64");
908
- /* Else ignore */
909
- break;
910
- } else if (str_eq( mcpp_optarg, "32")) { /* -m32 */
911
- if (str_eq( CPU, "x86_64"))
912
- strcpy( arch, "i386");
913
- else if (str_eq( CPU, "ppc64"))
914
- strcpy( arch, "ppc");
915
- /* Else ignore */
916
- break;
917
- } else if (str_eq( mcpp_optarg, "mmx")) { /* -mmmx */
918
- look_and_install( "__MMX__", DEF_NOARGS_PREDEF, null, "1");
919
- break;
920
- } else if (str_eq( mcpp_optarg, "no-mmx")) { /* -mno-mmx */
921
- undef_list[ undef_cnt++] = "__MMX__";
922
- break;
923
- }
924
- #endif /* SYS_FAMILY == UNIX */
925
- #if COMPILER == GNUC
926
- #if SYSTEM == SYS_CYGWIN
927
- if (str_eq( mcpp_optarg, "no-cygwin")) { /* -mno-cygwin */
928
- no_cygwin = TRUE;
929
- break;
930
- }
931
- #endif
932
- if (! integrated_cpp)
933
- usage( opt);
934
- break;
935
-
936
- case 'u':
937
- if (! str_eq( mcpp_optarg, "ndef")) /* -undef */
938
- usage( opt); /* Else fall through */
939
- #endif /* COMPILER == GNUC */
940
-
941
- #if COMPILER == MSC
942
- case 'u':
943
- #endif
944
- case 'N':
945
- /* No predefines: remove "unix", "__unix__" and friends. */
946
- nflag = TRUE;
947
- break;
948
-
949
- #if COMPILER == GNUC || NO_DIR
950
- case 'n':
951
- #if NO_DIR
952
- if (str_eq( mcpp_optarg, "odir")) { /* -nodir */
953
- no_dir = TRUE;
954
- }
955
- #endif
956
- #if COMPILER == GNUC
957
- if (str_eq( mcpp_optarg, "ostdinc")) { /* -nostdinc */
958
- unset_sys_dirs = TRUE; /* Unset pre-specified directories */
959
- } else if (str_eq( mcpp_optarg, "ostdinc++")) { /* -nostdinc++ */
960
- set_cplus_dir = FALSE; /* Unset C++-specific directories */
961
- } else if (str_eq( mcpp_optarg, "oprecomp")) { /* -noprecomp */
962
- mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
963
- break;
964
- }
965
- #endif
966
- else {
967
- usage( opt);
968
- }
969
- break;
970
- #endif
971
-
972
- #if COMPILER == GNUC
973
- case 'O':
974
- if (integrated_cpp) {
975
- if (*mcpp_optarg == '-') /* No argument */
976
- mcpp_optind--;
977
- else if ((isdigit( *mcpp_optarg) && *mcpp_optarg != '0')
978
- || *mcpp_optarg == 's' || *mcpp_optarg == 'z')
979
- /* -O1, -O2 -Os, -Oz */
980
- look_and_install( "__OPTIMIZE__", DEF_NOARGS_PREDEF, null
981
- , "1");
982
- else if (! isdigit( *mcpp_optarg))
983
- usage( opt);
984
- /* Else -O0: ignore */
985
- } else {
986
- usage( opt);
987
- }
988
- break; /* Else ignore -Ox option */
989
- #elif COMPILER == LCC
990
- case 'O': /* Define __LCCOPTIMLEVEL as 1 */
991
- defp = look_id( optim_name);
992
- strcpy( defp->repl, "1");
993
- break;
994
- #endif
995
-
996
- case 'o':
997
- *out_pp = mcpp_optarg; /* Output file name */
998
- break;
999
-
1000
- case 'P': /* No #line output */
1001
- option_flags.p = TRUE;
1002
- break;
1003
-
1004
- #if COMPILER == GNUC
1005
- case 'p':
1006
- if (str_eq( mcpp_optarg, "edantic") /* -pedantic */
1007
- || str_eq( mcpp_optarg, "edantic-errors")) {
1008
- /* -pedantic-errors */
1009
- /* This option does not imply -ansi */
1010
- if (warn_level == -1)
1011
- warn_level = 0;
1012
- warn_level |= (1 | 2 | 4);
1013
- if (! sflag && ! cplus_val) {
1014
- stdc_val = 1;
1015
- sflag = TRUE;
1016
- }
1017
- } else {
1018
- usage( opt);
1019
- }
1020
- break;
1021
- case 'q':
1022
- if (str_eq( mcpp_optarg, "uiet"))
1023
- /* -quiet: GCC's undocumented, yet frequently specified opt */
1024
- break; /* Ignore the option */
1025
- else
1026
- usage( opt);
1027
- break;
1028
- #endif /* COMPILER == GNUC */
1029
-
1030
- case 'Q':
1031
- option_flags.q = TRUE;
1032
- break;
1033
-
1034
- #if COMPILER == MSC
1035
- case 'R': /* -RTC1, -RTCc, -RTCs, -RTCu, etc. */
1036
- if (memcmp( mcpp_optarg, "TC", 2) == 0
1037
- && *(mcpp_optarg + 2) != EOS)
1038
- look_and_install( "__MSVC_RUNTIME_CHECKS", DEF_NOARGS_PREDEF
1039
- , null, "1");
1040
- else
1041
- usage( opt);
1042
- break;
1043
- #endif
1044
-
1045
- case 'S':
1046
- if (cplus_val || sflag) { /* C++ or the second time */
1047
- mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
1048
- break;
1049
- }
1050
- i = *mcpp_optarg;
1051
- if (! isdigit( i) || *(mcpp_optarg + 1) != EOS)
1052
- usage( opt);
1053
- stdc_val = i - '0';
1054
- sflag = TRUE;
1055
- break;
1056
-
1057
- #if COMPILER == GNUC
1058
- case 'r':
1059
- if (str_eq( mcpp_optarg, "emap"))
1060
- mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
1061
- /* Ignore -remap option */
1062
- else
1063
- usage( opt);
1064
- break;
1065
-
1066
- case 's':
1067
- if (memcmp( mcpp_optarg, "td=", 3) == 0
1068
- && strlen( mcpp_optarg) > 3) { /* -std=STANDARD*/
1069
- cp = mcpp_optarg + 3;
1070
- if (str_eq( cp, "c89") /* std=c89 */
1071
- || str_eq( cp, "c90") /* std=c90 */
1072
- || str_eq( cp, "gnu89") /* std=gnu89 */
1073
- || str_eq( cp, "iso9899:1990")) {
1074
- std_val = 0L; /* C90 + extensions */
1075
- } else if (str_eq( cp, "c99") /* std=c99 */
1076
- || str_eq( cp, "c9x") /* std=c9x */
1077
- || str_eq( cp, "gnu99") /* std=gnu99 */
1078
- || str_eq( cp, "gnu9x") /* std=gnu9x */
1079
- || str_eq( cp, "iso9899:1999")
1080
- || str_eq( cp, "iso9899:199x")) {
1081
- std_val = 199901L;
1082
- } else if (str_eq( cp, "c++98")) { /* std=c++98 */
1083
- cplus_val = std_val = 199711L;
1084
- } else if (memcmp( cp, "iso9899:", 8) == 0
1085
- && strlen( cp) >= 14) { /* std=iso9899:199409, etc. */
1086
- mcpp_optarg = cp + 8;
1087
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF
1088
- , null, "1");
1089
- ansi = TRUE;
1090
- goto Version;
1091
- } else if (memcmp( cp, "iso14882", 8) == 0) {
1092
- cp += 8;
1093
- ansi = TRUE;
1094
- if (cp && *cp == ':' && strlen( cp) >= 7) {
1095
- /* std=iso14882:199711, etc. */
1096
- cplus_val = CPLUS;
1097
- mcpp_optarg = cp + 1;
1098
- goto Version;
1099
- } else {
1100
- goto plus;
1101
- }
1102
- } else {
1103
- usage( opt);
1104
- }
1105
- if (! cplus_val && memcmp( cp, "gnu", 3) != 0) {
1106
- /* 'std=gnu*' does not imply -ansi */
1107
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF
1108
- , null, "1");
1109
- ansi = TRUE;
1110
- }
1111
- stdc_val = 1;
1112
- sflag = TRUE;
1113
- } else {
1114
- usage( opt);
1115
- }
1116
- break;
1117
-
1118
- case 't':
1119
- if (str_eq( mcpp_optarg, "raditional")
1120
- || str_eq( mcpp_optarg, "raditional-cpp")) {
1121
- /* -traditional, -traditional-cpp */
1122
- trad = TRUE;
1123
- mcpp_mode = OLD_PREP;
1124
- } else if (str_eq( mcpp_optarg, "rigraphs")) {
1125
- option_flags.trig = TRUE; /* -trigraphs */
1126
- } else {
1127
- usage( opt);
1128
- }
1129
- break;
1130
- #endif /* COMPILER == GNUC */
1131
-
1132
- #if COMPILER == MSC
1133
- case 'T':
1134
- if (strlen( mcpp_optarg) > 1)
1135
- usage( opt);
1136
- i = tolower( *mcpp_optarg); /* Fold case */
1137
- if (i == 'c') {
1138
- ; /* Ignore this option */
1139
- } else if (i == 'p') {
1140
- cplus_val = CPLUS;
1141
- } else {
1142
- usage( opt);
1143
- }
1144
- break;
1145
- #endif
1146
-
1147
386
  case 'U': /* Undefine macro */
1148
387
  if (undef_cnt >= MAX_UNDEF) {
1149
388
  mcpp_fputs( "Too many -U options.\n", ERR);
@@ -1152,116 +391,6 @@ plus:
1152
391
  undef_list[ undef_cnt++] = mcpp_optarg;
1153
392
  break;
1154
393
 
1155
- case 'V':
1156
- #if COMPILER == GNUC
1157
- Version:
1158
- #endif
1159
- valp = eval_num( mcpp_optarg);
1160
- if (valp->sign == VAL_ERROR)
1161
- usage( opt);
1162
- std_val = (long) valp->val;
1163
- break;
1164
-
1165
- case 'v':
1166
- option_flags.v = TRUE;
1167
- show_path = TRUE;
1168
- break;
1169
-
1170
- case 'W': /* warning level */
1171
- if (warn_level == -1) /* Have to initialize */
1172
- warn_level = 0;
1173
- #if COMPILER == GNUC
1174
- if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* No argument */
1175
- /*
1176
- * Note: -W without argument is not officially supported.
1177
- * It may cause an error.
1178
- */
1179
- warn_level |= (1 | 2 | 4 | 16);
1180
- mcpp_optind--;
1181
- } else if (str_eq( mcpp_optarg, "comment")
1182
- || str_eq( mcpp_optarg, "comments")
1183
- || str_eq( mcpp_optarg, "sign-compare")) {
1184
- warn_level |= 1;
1185
- } else if (str_eq( mcpp_optarg, "undef")) {
1186
- warn_level |= 4;
1187
- } else if (str_eq( mcpp_optarg, "all")) {
1188
- warn_level |= (1 | 16); /* Convert -Wall to -W17*/
1189
- } else if (str_eq( mcpp_optarg, "trigraphs")) {
1190
- warn_level |= 16;
1191
- }
1192
- #endif /* COMPILER == GNUC */
1193
- #if COMPILER == MSC
1194
- if (str_eq( mcpp_optarg, "all")) {
1195
- warn_level |= (1 | 16); /* Convert -Wall to -W17*/
1196
- } else if (str_eq( mcpp_optarg, "L")) {
1197
- option_flags.no_source_line = TRUE;
1198
- /* Single-line diagnostic */
1199
- }
1200
- #endif
1201
- if (isdigit( *mcpp_optarg)) {
1202
- warn_level |= parse_warn_level( mcpp_optarg, opt);
1203
- if (warn_level > 31 || warn_level < 0)
1204
- usage( opt);
1205
- }
1206
- if (warn_level == 0)
1207
- warn_level = 0xFF; /* Remember this option */
1208
- /* Else ignore the option */
1209
- break;
1210
-
1211
- #if COMPILER == GNUC || COMPILER == MSC
1212
- case 'w': /* Same as -W0 */
1213
- warn_level = 0xFF; /* Remenber this option */
1214
- break;
1215
- #endif
1216
-
1217
- #if COMPILER == GNUC
1218
- case 'x':
1219
- if (str_eq( mcpp_optarg, "c")) {
1220
- break; /* -x c -- ignore this */
1221
- } else if (str_eq( mcpp_optarg, "c++")) {
1222
- goto plus;
1223
- } else if (str_eq( mcpp_optarg, "assembler-with-cpp")) {
1224
- option_flags.lang_asm = TRUE;
1225
- break;
1226
- } else {
1227
- usage( opt);
1228
- }
1229
- break;
1230
- #endif
1231
-
1232
- #if COMPILER == MSC
1233
- case 'Z':
1234
- if (str_eq( mcpp_optarg, "c:wchar_t")) { /* -Zc:wchar_t */
1235
- look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF
1236
- , null, "1");
1237
- look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF, null
1238
- , "1");
1239
- wchar_t_modified = TRUE;
1240
- } else if (str_eq( mcpp_optarg, "c:wchar_t-")) {/* -Zc:wchar_t- */
1241
- wchar_t_modified = TRUE; /* Do not define the macros */
1242
- } else if (str_eq( mcpp_optarg, "l")) {
1243
- look_and_install( "_VC_NODEFAULTLIB", DEF_NOARGS_PREDEF, null
1244
- , "1");
1245
- } else if (str_eq( mcpp_optarg, "a")) { /* -Za */
1246
- undefine( "_MSC_EXTENSIONS");
1247
- option_flags.dollar_in_name = FALSE;
1248
- } else if (str_eq( mcpp_optarg, "e")) {
1249
- /* Ignore -Ze silently */
1250
- break;
1251
- } else if (*(mcpp_optarg + 1) == EOS) {
1252
- /* -Z followed by one char */
1253
- mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
1254
- /* Ignore the option with warning */
1255
- } else {
1256
- usage( opt);
1257
- }
1258
- break;
1259
- #endif
1260
-
1261
- case 'z':
1262
- option_flags.z = TRUE; /* No output of included file */
1263
- break;
1264
-
1265
394
  default: /* What is this one? */
1266
395
  usage( opt);
1267
396
  break;
@@ -1280,52 +409,6 @@ Version:
1280
409
  else if (warn_level == 0xFF)
1281
410
  warn_level = 0; /* -W0 has high precedence */
1282
411
 
1283
- #if SYSTEM == SYS_MAC
1284
- set_a_dir( NULL); /* Initialize incdir[] */
1285
- to_search_framework = incend;
1286
- /* Search framework[] next to the directory */
1287
- #endif
1288
-
1289
- #if COMPILER == GNUC && SYSTEM == SYS_MAC
1290
- if (arch[ 0]) { /* -arch option has been specified */
1291
- if (((str_eq( CPU, "i386") || str_eq( CPU, "x86_64"))
1292
- && (! str_eq( arch, "i386") && ! str_eq( arch, "x86_64")))
1293
- || ((str_eq( CPU, "ppc") || str_eq( CPU, "ppc64"))
1294
- && (! str_eq( arch, "ppc") && ! str_eq( arch, "ppc64")))) {
1295
- mcpp_fprintf( ERR, "Wrong argument of -arch option: %s\n", arch);
1296
- longjmp( error_exit, -1);
1297
- }
1298
- }
1299
- #endif
1300
- if (! arch[ 0]) {
1301
- /* None of -arch, -m32 or -m64 options has been specified. */
1302
- /* The CPU-specific-macros will be defined in init_cpu_macro(). */
1303
- strcpy( arch, CPU);
1304
- }
1305
- #if COMPILER != GNUC
1306
- init_cpu_macro( gval, sse);
1307
- #endif
1308
-
1309
- #if COMPILER == GNUC
1310
- if (sysdir < sysdir_end) {
1311
- char ** dp = sysdir;
1312
- if (! sys_dirp || sys_dirp == incdir)
1313
- sys_dirp = dp;
1314
- while (dp < sysdir_end)
1315
- set_a_dir( *dp++);
1316
- }
1317
- if (*in_pp && str_eq( (*in_pp) + strlen( *in_pp) - 2, ".S"))
1318
- option_flags.lang_asm = TRUE; /* Input file name is *.S */
1319
- if (option_flags.lang_asm) {
1320
- look_and_install( "__ASSEMBLER__", DEF_NOARGS_PREDEF, null, "1");
1321
- option_flags.dollar_in_name = FALSE; /* Disable '$' in name */
1322
- }
1323
- if (! sys_dirp || sys_dirp == incdir)
1324
- sys_dirp = incend;
1325
- #endif
1326
- #if SYSTEM == SYS_MAC
1327
- init_framework(); /* After setting sys_dirp */
1328
- #endif
1329
412
  set_env_dirs();
1330
413
  if (! unset_sys_dirs)
1331
414
  set_sys_dirs( set_cplus_dir);
@@ -1348,9 +431,6 @@ Version:
1348
431
  /* Else mcpp_main() will diagnose *in_pp and exit */
1349
432
  }
1350
433
  if (! (mcpp_debug & MACRO_CALL)) {
1351
- /* -K option alters behavior of -v option */
1352
- if (option_flags.v)
1353
- version();
1354
434
  if (show_path) {
1355
435
  fp_debug = stderr;
1356
436
  dump_path();
@@ -1365,37 +445,12 @@ static void version( void)
1365
445
  */
1366
446
  {
1367
447
  const char * mes[] = {
1368
-
1369
- #if MCPP_LIB
1370
448
  /* Write messages here, for example, "MySomeTool with ". */
1371
- #endif
1372
-
1373
- #ifdef VERSION_MSG
1374
- "MCPP V.2.7.2 (2008/11) "
1375
- #else
1376
- "MCPP V.", VERSION, " (", DATE, ") "
1377
- #endif
1378
- #if COMPILER == INDEPENDENT
1379
- , "compiler-independent-build "
1380
- #else
1381
- #ifdef CMP_NAME
1382
- , "for ", CMP_NAME, " "
1383
- #endif
1384
- #endif
1385
- , "compiled by "
1386
- #ifdef VERSION_MSG
1387
- , VERSION_MSG
1388
- #else
1389
- #ifdef HOST_CMP_NAME
1390
- , HOST_CMP_NAME
1391
- #if HOST_COMPILER == GNUC
1392
- , " V.", GCC_MAJOR_VERSION, ".", GCC_MINOR_VERSION
1393
- #endif
1394
- #endif
1395
- #endif
1396
- , "\n",
1397
- NULL
1398
- };
449
+ "MCPP V.2.7.2 (2008/11)"
450
+ , "https://github.com/zeroc-ice/mcpp"
451
+ , "compiler-independent-build "
452
+ , NULL
453
+ };
1399
454
 
1400
455
  const char ** mpp = mes;
1401
456
  while (*mpp)
@@ -1412,28 +467,11 @@ static void usage(
1412
467
  const char * mes[] = {
1413
468
 
1414
469
  "Usage: ",
1415
- "mcpp",
1416
- " [-<opts> [-<opts>]] [<infile> [-<opts>] [<outfile>] [-<opts>]]\n",
1417
- " <infile> defaults to stdin and <outfile> defaults to stdout.\n",
1418
-
1419
- "\nCommonly used options:\n",
1420
-
1421
- "-@MODE Specify preprocessing mode. MODE should be one of these 4:\n",
1422
- " -@std Standard conforming mode. (default)\n",
1423
- " -@poststd, -@post special 'post-Standard' mode.\n",
1424
- " -@kr K&R 1st mode.\n",
1425
- " -@oldprep, -@old 'old_preprocessor' mode (i.e. 'Reiser model' cpp).\n",
1426
-
1427
- #if COMPILER == MSC
1428
- "-arch:SSE, -arch:SSE2 Define the macro _M_IX86_FP as 1, 2 respectively.\n",
1429
- #endif
1430
- #if SYSTEM == SYS_MAC && COMPILER == GNUC
1431
- "-arch <arch> Change the target to <arch> (i386, x86_64, ppc, ppc64).\n",
1432
- #endif
470
+ "mcpp",
471
+ " [-<opts> [-<opts>]] [<infile> [-<opts>] [<outfile>] [-<opts>]]\n",
472
+ " <infile> defaults to stdin and <outfile> defaults to stdout.\n",
1433
473
 
1434
- #if ! STD_LINE_PREFIX
1435
- "-b Output #line lines in C source style.\n",
1436
- #endif
474
+ "\nCommonly used options:\n",
1437
475
 
1438
476
  "-C Output also comments.\n",
1439
477
  "-D <macro>[=<value>] Define <macro> as <value> (default:1).\n",
@@ -1441,151 +479,14 @@ static void usage(
1441
479
  "-e <encoding> Change the default multi-byte character encoding to one of:\n",
1442
480
  " euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.\n",
1443
481
 
1444
- #if SYSTEM == SYS_MAC
1445
- "-F <framework> Add <framework> to top of framework directory list.\n",
1446
- #endif
1447
- #if COMPILER == GNUC
1448
- "-finput-charset=<encoding> Same as -e <encoding>.\n",
1449
- " (Don't insert spaces around '=').\n",
1450
- #endif
1451
- #if COMPILER == MSC
1452
- "-Fl <file> Include the <file> prior to the main input file.\n",
1453
- "-G<n> Define the macro _M_IX86 according to <n>.\n",
1454
- #endif
1455
- #if COMPILER == LCC
1456
- "-g <n> Define the macro __LCCDEBUGLEVEL as <n>.\n",
1457
- #endif
1458
-
1459
482
  "-I <directory> Add <directory> to the #include search list.\n",
1460
483
 
1461
- #if COMPILER == GNUC
1462
- "-isysroot <dir> Change root of system header directory to <dir>.\n",
1463
- "-include <file> Include the <file> prior to the main input file.\n",
1464
- #else
1465
484
  "-I- Unset system or site specific include directories.\n",
1466
- #endif
1467
- #if COMPILER == MSC
1468
- "-J Define the macro _CHAR_UNSIGNED as 1.\n",
1469
- #endif
1470
485
 
1471
- "-j Don't output the source line in diagnostics.\n",
1472
- "-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file\n",
486
+ "-M file\n",
1473
487
  " Output source file dependency line for makefile.\n",
1474
- #if SYS_FAMILY == SYS_UNIX
1475
- "-m32 Change target CPU from x86_64, ppc64 to i386, ppc, respectively.\n",
1476
- "-m64 Change target CPU from i386, ppc to x86_64, ppc64, respectively.\n",
1477
- #endif
1478
- "-N Don't predefine any non-standard macros.\n",
1479
-
1480
- #if COMPILER == GNUC
1481
- "-nostdinc Unset system or site specific include directories.\n",
1482
- #endif
1483
- #if COMPILER == LCC
1484
- "-O Define the macro __LCCOPTIMLEVEL as 1.\n",
1485
- #endif
1486
-
1487
- "-o <file> Output to <file>.\n",
1488
- "-P Don't output #line lines.\n",
1489
- "-Q Output diagnostics to \"mcpp.err\" (default:stderr).\n",
1490
- #if COMPILER == MSC
1491
- "-RTC* Define the macro __MSVC_RUNTIME_CHECKS as 1.\n",
1492
- #endif
1493
- #if COMPILER == GNUC
1494
- "-traditional, -traditional-cpp Same as -@oldprep.\n",
1495
- #endif
1496
488
  "-U <macro> Undefine <macro>.\n",
1497
489
 
1498
- #if COMPILER == GNUC
1499
- "-undef Same as -N.\n",
1500
- #endif
1501
- #if COMPILER == MSC
1502
- "-u Same as -N.\n",
1503
- #endif
1504
-
1505
- "-v Show version and include directories of mcpp.\n",
1506
- "-W <level> Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).\n",
1507
-
1508
- #if COMPILER == MSC
1509
- "-WL Same as -j.\n",
1510
- #endif
1511
- #if COMPILER == MSC || COMPILER == GNUC
1512
- "-w Same as -W0.\n",
1513
- #endif
1514
- #if COMPILER == MSC
1515
- "-X Same as -I-.\n",
1516
- "-Zc:wchar_t Define _NATIVE_WCHAR_T_DEFINED and _WCHAR_T_DEFINED as 1.\n",
1517
- "-Zl Define the macro _VC_NODEFAULTLIB as 1.\n",
1518
- #endif
1519
-
1520
- "-z Don't output the included file, only defining macros.\n",
1521
-
1522
- "\nOptions available with -@std (default) or -@poststd options:\n",
1523
-
1524
- "-+ Process C++ source.\n",
1525
-
1526
- #if DIGRAPHS_INIT
1527
- "-2 Disable digraphs.\n",
1528
- #else
1529
- "-2 Enable digraphs.\n",
1530
- #endif
1531
- #if COMPILER == GNUC
1532
- "-digraphs Enable digraphs.\n",
1533
- #endif
1534
-
1535
- "-h <n> Re-define the pre-defined macro __STDC_HOSTED__ as <n>.\n",
1536
-
1537
- #if COMPILER == GNUC
1538
- "-lang-c89 Same as -S1.\n",
1539
- "-lang-c++ Same as -+.\n",
1540
- "-pedantic, -pedantic-errors Same as -W7.\n",
1541
- "-S <n> Redefine __STDC__ to <n>.\n",
1542
- #else
1543
- "-S <n> Redefine __STDC__ to <n>, undefine old style macros.\n",
1544
- #endif
1545
-
1546
- #if COMPILER == GNUC
1547
- "-std=<STANDARD> Specify the standard to which the code should conform.\n",
1548
- " <STANDARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.\n",
1549
- " iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).\n",
1550
- #endif
1551
- #if COMPILER == MSC
1552
- "-Tp Same as -+.\n",
1553
- #endif
1554
-
1555
- "-V <n> Redefine __STDC_VERSION__ or __cplusplus to <n>.\n",
1556
- " C with -V199901L specifies C99 specs.\n",
1557
- " C++ with -V199901L specifies C99 compatible specs.\n",
1558
-
1559
- #if COMPILER == GNUC
1560
- "-x c++ Same as -+.\n",
1561
- #endif
1562
-
1563
- "\nOptions available with only -@std (default) option:\n",
1564
-
1565
- "-@compat Expand recursive macro more than Standard.\n",
1566
- #if TRIGRAPHS_INIT
1567
- "-3 Disable trigraphs.\n",
1568
- #else
1569
- "-3 Enable trigraphs.\n",
1570
- #endif
1571
- "-K Output macro annotations embedding in comments.\n",
1572
- #if COMPILER == GNUC
1573
- "-trigraphs Enable trigraphs.\n",
1574
- #endif
1575
-
1576
- "\nOptions available with -@std (default), -@kr or -@oldprep options:\n",
1577
-
1578
- #if COMPILER == GNUC
1579
- "-lang-asm Same as -x assembler-with-cpp.\n",
1580
- "-x assembler-with-cpp Process \"assembler\" source.\n",
1581
- #elif COMPILER == MSC
1582
- "-A Process \"assembler\" source.\n",
1583
- #else
1584
- "-a Process \"assembler\" source.\n",
1585
- #endif
1586
-
1587
- "-k Keep white spaces of input lines as they are.\n",
1588
-
1589
490
  "\nFor further details see mcpp-manual.html.\n",
1590
491
  NULL,
1591
492
  };
@@ -1596,9 +497,7 @@ static void usage(
1596
497
  if (opt != '?')
1597
498
  mcpp_fprintf( ERR, illegopt, opt, mcpp_optarg ? mcpp_optarg : null);
1598
499
  version();
1599
- #if MCPP_LIB
1600
500
  mes[ 1] = argv0;
1601
- #endif
1602
501
  while (*mpp)
1603
502
  mcpp_fputs( *mpp++, ERR);
1604
503
  longjmp( error_exit, -1);
@@ -1621,27 +520,14 @@ static void set_opt_list(
1621
520
  "m:",
1622
521
  #endif
1623
522
 
1624
- #if COMPILER == GNUC
1625
- "$A:a:cd:Ef:g:i:l:r:s:t:u:O:p:q:wx:",
1626
- #elif COMPILER == MSC
1627
- "Aa:F:G:JR:T:XZ:uw",
1628
- #elif COMPILER == LCC
1629
- "g:O",
1630
- #endif
1631
-
1632
- #if COMPILER != GNUC && COMPILER != MSC
1633
523
  "a",
1634
- #endif
1635
- #if SYSTEM == SYS_MAC
1636
- "F:-:",
1637
- #endif
1638
524
 
1639
525
  NULL
1640
526
  };
1641
527
 
1642
528
  const char * const * lp = & list[ 0];
1643
529
 
1644
- strcpy( optlist, "23+@:e:h:jkn:o:vzCD:I:KM:NPQS:U:V:W:");
530
+ strcpy( optlist, "e:CD:I:M:U:");
1645
531
  /* Default options */
1646
532
  while (*lp)
1647
533
  strcat( optlist, *lp++);
@@ -1649,46 +535,6 @@ static void set_opt_list(
1649
535
  cfatal( "Bug: Too long option list", NULL, 0L, NULL); /* _F_ */
1650
536
  }
1651
537
 
1652
- static int parse_warn_level(
1653
- const char * mcpp_optarg,
1654
- int opt
1655
- )
1656
- /*
1657
- * Parse warn level option.
1658
- * Warning level option is specified as '19' or '1|2|16' or even '3|16'.
1659
- * Even spaces are allowed as ' 1 | 2|16 '.
1660
- */
1661
- {
1662
- const char * cp = mcpp_optarg;
1663
- int w, i;
1664
-
1665
- w = i = 0;
1666
- while( *cp != EOS) {
1667
- while( *cp == ' ')
1668
- cp++; /* Skip spaces */
1669
- if (! isdigit( *cp))
1670
- break; /* Error */
1671
- while (isdigit( *cp)) {
1672
- i *= 10;
1673
- i += (*cp++ - '0');
1674
- }
1675
- while (*cp == ' ')
1676
- cp++;
1677
- if (*cp == '|') { /* Only digits or '|' are allowed */
1678
- w |= i; /* Take OR of the args */
1679
- i = 0;
1680
- cp++;
1681
- }
1682
- }
1683
- if (*cp != EOS) { /* Not ending with digit */
1684
- mcpp_fprintf( ERR, "Illegal warning level option \"%s\"\n"
1685
- , mcpp_optarg);
1686
- usage( opt);
1687
- }
1688
- w |= i; /* Take the last arg */
1689
- return w;
1690
- }
1691
-
1692
538
  static void def_a_macro(
1693
539
  int opt, /* 'D' */
1694
540
  char * def /* Argument of -D option */
@@ -1703,11 +549,6 @@ static void def_a_macro(
1703
549
  char * cp;
1704
550
  int i;
1705
551
 
1706
- /* Convert trigraphs for the environment which need trigraphs */
1707
- if (mcpp_mode == STD && option_flags.trig)
1708
- cnv_trigraph( def);
1709
- if (mcpp_mode == POST_STD && option_flags.dig)
1710
- cnv_digraph( def); /* Convert prior to installing macro */
1711
552
  definition = xmalloc( strlen( def) + 4);
1712
553
  strcpy( definition, def);
1713
554
  if ((cp = strchr( definition, '=')) != NULL) {
@@ -1750,44 +591,15 @@ static void chk_opts(
1750
591
  {
1751
592
  int incompat = FALSE;
1752
593
 
1753
- switch (mcpp_mode) {
1754
- case STD :
1755
- case POST_STD :
1756
- if (trad)
1757
- incompat = TRUE;
1758
- if (! stdc_val)
1759
- stdc_val = STDC;
1760
- break;
1761
- case KR :
1762
- case OLD_PREP :
1763
- #if COMPILER == GNUC
1764
- if (sflag || cplus_val || ansi || std_val != -1L)
1765
- #else
1766
- if (sflag || cplus_val || std_val != -1L)
1767
- #endif
1768
- incompat = TRUE;
1769
- if (option_flags.dig) {
1770
- if (option_flags.dig != DIGRAPHS_INIT)
1771
- incompat = TRUE;
1772
- else
1773
- option_flags.dig = 0;
1774
- }
1775
- break;
1776
- }
1777
-
1778
- if (mcpp_mode == POST_STD
1779
- && (option_flags.lang_asm || compat_mode || option_flags.k))
594
+ if (trad)
1780
595
  incompat = TRUE;
1781
- if (mcpp_mode != STD && option_flags.trig) {
1782
- if (option_flags.trig != TRIGRAPHS_INIT)
1783
- incompat = TRUE;
1784
- else
1785
- option_flags.trig = FALSE;
1786
- }
1787
- if (mcpp_mode != STD && (mcpp_debug & MACRO_CALL))
596
+ if (! stdc_val)
597
+ stdc_val = STDC;
598
+
599
+ if (compat_mode)
1788
600
  incompat = TRUE;
1789
601
  if ((mcpp_debug & MACRO_CALL)
1790
- && (option_flags.lang_asm || option_flags.c)) {
602
+ && option_flags.c) {
1791
603
  mcpp_fputs( "Disabled -K option.\n", ERR);
1792
604
  mcpp_debug &= ~MACRO_CALL;
1793
605
  /* -a and -C options do not co-exist with -K */
@@ -1797,90 +609,10 @@ static void chk_opts(
1797
609
  usage( '?');
1798
610
  }
1799
611
 
1800
- standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
1801
- /* Modify magic characters in character type table. */
1802
- if (! standard)
1803
- char_type[ DEF_MAGIC] = 0;
1804
- if (mcpp_mode != STD)
1805
- char_type[ IN_SRC] = 0;
1806
- if (mcpp_mode == POST_STD || mcpp_mode == KR)
1807
- char_type[ TOK_SEP] = 0; /* TOK_SEP equals to COM_SEP */
1808
- if (mcpp_mode != STD)
1809
- char_type[ MAC_INF] = 0;
1810
-
1811
- expand_init( compat_mode, ansi);
612
+ expand_init( compat_mode);
1812
613
  /* Set function pointer to macro expansion routine */
1813
614
  }
1814
615
 
1815
- #if COMPILER != GNUC
1816
-
1817
- static void init_cpu_macro (
1818
- int gval, /* Argument of -G option for MSC */
1819
- int sse /* Argument of -sse: option for MSC */
1820
- )
1821
- /*
1822
- * Set predefined macros for CPU.
1823
- * This routine is called from do_options() only once.
1824
- * GCC-specific-build defines these macro by init_gcc_macro().
1825
- */
1826
- {
1827
- const char * cpu_macro[][ 7] = {
1828
- #if SYS_FAMILY == SYS_UNIX
1829
- { "__i386__"
1830
- #if SYSTEM == SYS_CYGWIN
1831
- , "_X86_"
1832
- #endif
1833
- , NULL,},
1834
- { "__x86_64__", "__amd64__", NULL,},
1835
- { "__ppc__", "__powerpc__", NULL,},
1836
- { "__ppc64__", "__powerpc64__", NULL,}
1837
- #elif SYS_FAMILY == SYS_WIN
1838
- { "_WIN32", "__WIN32__", "_X86_"
1839
- #if SYSTEM == SYS_MINGW
1840
- , "__i386__"
1841
- #endif
1842
- , NULL,},
1843
- { "_WIN32", "_WIN64", "__WIN64__", "_M_AMD64", "_AMD64_", "_X64_"
1844
- , NULL,}, /* "_WIN32" is defined even on Windows 64 */
1845
- { NULL,}, /* Not supported */
1846
- { NULL,} /* Not supported */
1847
- #endif
1848
- };
1849
- const char ** macro;
1850
- int index;
1851
-
1852
- if (str_eq( arch, "i386"))
1853
- index = 0;
1854
- else if (str_eq( arch, "x86_64"))
1855
- index = 1;
1856
- else if (str_eq( arch, "ppc"))
1857
- index = 2;
1858
- else if (str_eq( arch, "ppc64"))
1859
- index = 3;
1860
- else
1861
- index = 9;
1862
-
1863
- if (index == 9) { /* Unknown CPU */
1864
- look_and_install( "__" CPU "__", DEF_NOARGS_PREDEF, null, "1");
1865
- return;
1866
- }
1867
- macro = cpu_macro[ index];
1868
- while (*macro)
1869
- look_and_install( *macro++, DEF_NOARGS_PREDEF, null, "1");
1870
- #if SYS_FAMILY == SYS_WIN
1871
- if (index == 0) {
1872
- char val[] = "600";
1873
- if (gval)
1874
- val[ 0] = gval;
1875
- look_and_install( "_M_IX86", DEF_NOARGS_PREDEF, null, val);
1876
- val[ 0] = '0' + sse;
1877
- val[ 1] = '\0';
1878
- look_and_install( "_M_IX86_FP", DEF_NOARGS_PREDEF, null, val);
1879
- }
1880
- #endif
1881
- }
1882
- #endif /* COMPILER != GNUC */
1883
-
1884
616
  static void init_predefines( void)
1885
617
  /*
1886
618
  * Set or unset predefined macros.
@@ -1888,43 +620,23 @@ static void init_predefines( void)
1888
620
  {
1889
621
  char tmp[ 16];
1890
622
 
1891
- if (std_val != -1L) { /* Version is specified */
1892
- if (cplus_val)
1893
- cplus_val = std_val; /* Value of __cplusplus */
1894
- else
1895
- stdc_ver = std_val; /* Value of __STDC_VERSION__ */
1896
- } else {
1897
- if (! cplus_val)
1898
- stdc_ver = stdc_val ? STDC_VERSION : 0L;
1899
- }
623
+ stdc_ver = stdc_val ? STDC_VERSION : 0L;
1900
624
 
1901
625
  if (nflag) {
1902
626
  un_predefine( TRUE);
1903
- } else if (stdc_val || cplus_val) {
1904
- #if COMPILER != GNUC
627
+ } else if (stdc_val) {
1905
628
  un_predefine( FALSE); /* Undefine "unix" or so */
1906
- #endif
1907
629
  }
1908
- sprintf( tmp, "%ldL", cplus_val ? cplus_val : stdc_ver);
1909
- if (cplus_val) {
1910
- look_and_install( "__cplusplus", DEF_NOARGS_STANDARD, null, tmp);
1911
- } else {
1912
- if (stdc_ver)
1913
- look_and_install( "__STDC_VERSION__", DEF_NOARGS_STANDARD, null
1914
- , tmp);
630
+ sprintf( tmp, "%ldL", stdc_ver);
631
+ if (stdc_ver)
632
+ look_and_install( "__STDC_VERSION__", DEF_NOARGS_STANDARD, null
633
+ , tmp);
1915
634
  #ifdef COMPILER_CPLUS
1916
- if (! nflag) /* Undefine pre-defined macro for C++ */
1917
- undefine( COMPILER_CPLUS);
635
+ if (! nflag) /* Undefine pre-defined macro for C++ */
636
+ undefine( COMPILER_CPLUS);
1918
637
  #endif
1919
- }
1920
638
  set_limit();
1921
- stdc2 = cplus_val || stdc_ver >= 199901L;
1922
- stdc3 = (cplus_val >= 199901L) || (stdc_ver >= 199901L);
1923
- /* (cplus_val >= 199901L) makes C++ C99-compatible specs */
1924
- if (standard)
1925
- init_std_defines();
1926
- if (stdc3)
1927
- set_pragma_op();
639
+ init_std_defines();
1928
640
  }
1929
641
 
1930
642
  static void init_std_defines( void)
@@ -1967,10 +679,6 @@ static void init_std_defines( void)
1967
679
  sprintf( tmp, "%d", STDC_HOSTED);
1968
680
  look_and_install( "__STDC_HOSTED__", DEF_NOARGS_PREDEF, null, tmp);
1969
681
  }
1970
- #if COMPILER != GNUC /* GCC do not undefine __STDC__ on C++ */
1971
- if (cplus_val)
1972
- return;
1973
- #endif
1974
682
  /* Define __STDC__ as 1 or such for Standard conforming compiler. */
1975
683
  if (! look_id( "__STDC__")) {
1976
684
  sprintf( tmp, "%d", stdc_val);
@@ -1986,52 +694,17 @@ static void set_limit( void)
1986
694
  * Set the minimum translation limits specified by the Standards.
1987
695
  */
1988
696
  {
1989
- if (cplus_val) { /* Specified by C++ 1998 Standard */
1990
- std_limits.str_len = SLEN_CPLUS_MIN;
1991
- std_limits.id_len = IDLEN_CPLUS_MIN;
1992
- std_limits.n_mac_pars = NMACPARS_CPLUS_MIN;
1993
- std_limits.exp_nest = EXP_NEST_CPLUS_MIN;
1994
- std_limits.blk_nest = BLK_NEST_CPLUS_MIN;
1995
- std_limits.inc_nest = INCLUDE_NEST_CPLUS_MIN;
1996
- std_limits.n_macro = NMACRO_CPLUS_MIN;
1997
- std_limits.line_num = LINE_CPLUS_LIMIT;
1998
- } else if (stdc_ver >= 199901L) { /* Specified by C 1999 Standard */
1999
- std_limits.str_len = SLEN99MIN;
2000
- std_limits.id_len = IDLEN99MIN;
2001
- std_limits.n_mac_pars = NMACPARS99MIN;
2002
- std_limits.exp_nest = EXP_NEST99MIN;
2003
- std_limits.blk_nest = BLK_NEST99MIN;
2004
- std_limits.inc_nest = INCLUDE_NEST99MIN;
2005
- std_limits.n_macro = NMACRO99MIN;
2006
- std_limits.line_num = LINE99LIMIT;
2007
- } else if (standard) { /* Specified by C 1990 Standard */
2008
- std_limits.str_len = SLEN90MIN;
2009
- std_limits.id_len = IDLEN90MIN;
2010
- std_limits.n_mac_pars = NMACPARS90MIN;
2011
- std_limits.exp_nest = EXP_NEST90MIN;
2012
- std_limits.blk_nest = BLK_NEST90MIN;
2013
- std_limits.inc_nest = INCLUDE_NEST90MIN;
2014
- std_limits.n_macro = NMACRO90MIN;
2015
- std_limits.line_num = LINE90LIMIT;
2016
- }
2017
- /* Else pre-Standard mode */
697
+ /* Specified by C 1990 Standard */
698
+ std_limits.str_len = SLEN90MIN;
699
+ std_limits.id_len = IDLEN90MIN;
700
+ std_limits.n_mac_pars = NMACPARS90MIN;
701
+ std_limits.exp_nest = EXP_NEST90MIN;
702
+ std_limits.blk_nest = BLK_NEST90MIN;
703
+ std_limits.inc_nest = INCLUDE_NEST90MIN;
704
+ std_limits.n_macro = NMACRO90MIN;
705
+ std_limits.line_num = LINE90LIMIT;
2018
706
  }
2019
707
 
2020
- static void set_pragma_op( void)
2021
- /*
2022
- * #define _Pragma(a) _Pragma ( a )
2023
- * Define _Pragma() operator as a special macro so as to be searched
2024
- * easily. The unusual 'DEF_PRAGMA' is a marker of this psuedo
2025
- * macro.
2026
- */
2027
- {
2028
- char * name = "_Pragma";
2029
- char tmp[ 16];
2030
-
2031
- sprintf( tmp, "%c%s ( %c%c )", DEF_MAGIC, name, MAC_PARM, 1);
2032
- /* Replacement text */
2033
- look_and_install( name, DEF_PRAGMA, "a", tmp);
2034
- }
2035
708
 
2036
709
  void init_sys_macro( void)
2037
710
  /*
@@ -2041,15 +714,7 @@ void init_sys_macro( void)
2041
714
  {
2042
715
  /* This order is important. */
2043
716
  def_macros(); /* Define macros specified by -D */
2044
- #if COMPILER == GNUC
2045
- chk_env();
2046
- #endif
2047
717
  init_predefines(); /* Define predefined macros */
2048
- #if COMPILER == GNUC
2049
- init_gcc_macro();
2050
- #elif COMPILER == MSC
2051
- init_msc_macro();
2052
- #endif
2053
718
  undef_macros(); /* Undefine macros specified by -U */
2054
719
  if (mcpp_debug & MACRO_CALL)
2055
720
  dump_def( FALSE, TRUE); /* Finally putout current macro names */
@@ -2060,43 +725,9 @@ void at_start( void)
2060
725
  * Do the commands prior to processing main source file after do_options().
2061
726
  */
2062
727
  {
2063
- char * env;
2064
728
  FILEINFO * file_saved = infile;
2065
729
 
2066
- /*
2067
- * Set multi-byte character encoding according to environment variables
2068
- * LC_ALL, LC_CTYPE and LANG -- with preference in this order.
2069
- */
2070
- if (! mb_changed) { /* -m option precedes */
2071
- if ((env = getenv( "LC_ALL")) != NULL)
2072
- set_encoding( env, "LC_ALL", 0);
2073
- else if ((env = getenv( "LC_CTYPE")) != NULL)
2074
- set_encoding( env, "LC_CTYPE", 0);
2075
- else if ((env = getenv( "LANG")) != NULL)
2076
- set_encoding( env, "LANG", 0);
2077
- }
2078
-
2079
- #if COMPILER == GNUC || COMPILER == MSC
2080
- if (option_flags.dollar_in_name)
2081
- char_type[ 0x24] |= LET; /* Enable '$' in identifiers */
2082
- /*
2083
- * Do the -include (-Fl for MSC) options in the specified order.
2084
- * Note: This functionality is implemented as nested #includes
2085
- * which results the same effect as sequential #includes.
2086
- */
2087
- {
2088
- char ** preinc;
2089
- /*
2090
- * Note: Here, 'infile' is the main input file, which is pseudo-
2091
- * parent file of the files to pre-include. So, we must
2092
- * temporarily set the infile's directory to the current directory
2093
- * in order to preinclude the files relative to it.
2094
- */
2095
- preinc = preinc_end;
2096
- while (preinclude <= --preinc && *preinc != NULL)
2097
- open_file( &null, NULL, *preinc, TRUE, TRUE, FALSE);
2098
- }
2099
- #endif
730
+ // We don't support changing the encodings.
2100
731
 
2101
732
  put_info( file_saved);
2102
733
  }
@@ -2108,27 +739,11 @@ static void put_info(
2108
739
  * Putout compiler-specific information.
2109
740
  */
2110
741
  {
2111
- if (no_output || option_flags.p)
742
+ if (no_output)
2112
743
  return;
2113
744
  sharp_file->line++;
2114
745
  sharp( sharp_file, 0);
2115
746
  sharp_file->line--;
2116
- #if COMPILER == GNUC
2117
- if (gcc_work_dir)
2118
- mcpp_fprintf( OUT, "%s%ld \"%s%c\"\n"
2119
- , std_line_prefix ? "#line " : LINE_PREFIX
2120
- , 1, cur_work_dir, '/');
2121
- /* Putout the current directory as a #line line as: */
2122
- /* '# 1 "/abs-path/cur_dir//"'. */
2123
- mcpp_fprintf( OUT, "%s%ld \"<built-in>\"\n"
2124
- , std_line_prefix ? "#line " : LINE_PREFIX , 1);
2125
- mcpp_fprintf( OUT, "%s%ld \"<command line>\"\n"
2126
- , std_line_prefix ? "#line " : LINE_PREFIX , 1);
2127
- mcpp_fprintf( OUT, "%s%ld \"%s\"%s\n"
2128
- , std_line_prefix ? "#line " : LINE_PREFIX, 1, cur_fullname
2129
- , ! str_eq( cur_fullname, sharp_file->full_fname) ? " 1" : null);
2130
- /* Suffix " 1" for the file specified by -include */
2131
- #endif
2132
747
  }
2133
748
 
2134
749
  static char * set_files(
@@ -2173,10 +788,6 @@ static void set_env_dirs( void)
2173
788
  {
2174
789
  const char * env;
2175
790
 
2176
- if (cplus_val) {
2177
- if ((env = getenv( ENV_CPLUS_INCLUDE_DIR)) != NULL)
2178
- parse_env( env);
2179
- }
2180
791
  if ((env = getenv( ENV_C_INCLUDE_DIR)) != NULL)
2181
792
  parse_env( env);
2182
793
  }
@@ -2220,21 +831,6 @@ static void set_sys_dirs(
2220
831
  * list.
2221
832
  */
2222
833
  {
2223
- if (cplus_val && set_cplus_dir) {
2224
- #ifdef CPLUS_INCLUDE_DIR1
2225
- set_a_dir( CPLUS_INCLUDE_DIR1);
2226
- #endif
2227
- #ifdef CPLUS_INCLUDE_DIR2
2228
- set_a_dir( CPLUS_INCLUDE_DIR2);
2229
- #endif
2230
- #ifdef CPLUS_INCLUDE_DIR3
2231
- set_a_dir( CPLUS_INCLUDE_DIR3);
2232
- #endif
2233
- #ifdef CPLUS_INCLUDE_DIR4
2234
- set_a_dir( CPLUS_INCLUDE_DIR4);
2235
- #endif
2236
- }
2237
-
2238
834
  #if SYS_FAMILY == SYS_UNIX
2239
835
  set_a_dir( "/usr/local/include");
2240
836
  #endif
@@ -2283,24 +879,9 @@ static void set_a_dir(
2283
879
  incdir = (const char **) xmalloc( sizeof (char *) * max_inc);
2284
880
  incend = &incdir[ 0];
2285
881
  } else if (incend - incdir >= max_inc) { /* Buffer full */
2286
- #if SYSTEM == SYS_MAC
2287
- size_t framework_pos = to_search_framework - incdir;
2288
- #endif
2289
- #if COMPILER == GNUC
2290
- size_t sys_pos = 0;
2291
- if (sys_dirp)
2292
- sys_pos = sys_dirp - incdir;
2293
- #endif
2294
882
  incdir = (const char **) xrealloc( (void *) incdir
2295
883
  , sizeof (char *) * max_inc * 2);
2296
884
  incend = &incdir[ max_inc];
2297
- #if COMPILER == GNUC
2298
- if (sys_pos)
2299
- sys_dirp = &incdir[ sys_pos];
2300
- #endif
2301
- #if SYSTEM == SYS_MAC
2302
- to_search_framework = &incdir[ framework_pos];
2303
- #endif
2304
885
  max_inc *= 2;
2305
886
  }
2306
887
 
@@ -2311,9 +892,6 @@ static void set_a_dir(
2311
892
  return;
2312
893
  for (ip = incdir; ip < incend; ip++) {
2313
894
  if (str_case_eq( *ip, norm_name)) {
2314
- if (option_flags.v && ! (mcpp_debug & MACRO_CALL))
2315
- mcpp_fprintf( ERR, "Duplicate directory \"%s\" is ignored\n"
2316
- , norm_name);
2317
895
  free( norm_name); /* Already registered */
2318
896
  return;
2319
897
  }
@@ -2322,41 +900,6 @@ static void set_a_dir(
2322
900
  *incend++ = norm_name;
2323
901
  }
2324
902
 
2325
- #if SYSTEM == SYS_MAC && COMPILER == GNUC
2326
- /* Definitions for "header map" file of Xcode / Apple-GCC. */
2327
- /* These definitions were taken from cpplib.h of Apple-GCC-4.0.1 */
2328
-
2329
- #define HMAP_SAME_ENDIANNESS_MAGIC \
2330
- (((((('h' << 8) | 'm') << 8) | 'a') << 8) | 'p')
2331
-
2332
- typedef unsigned short uint16;
2333
- typedef unsigned int uint32;
2334
-
2335
- struct hmap_bucket
2336
- {
2337
- uint32 key; /* Offset (into strings) of key */
2338
- struct {
2339
- uint32 prefix; /* Offset (into strings) of value prefix */
2340
- uint32 suffix; /* Offset (into strings) of value suffix */
2341
- } value; /* Value (prefix- and suffix-strings) */
2342
- };
2343
-
2344
- struct hmap_header_map
2345
- {
2346
- uint32 magic; /* Magic word, also indicates byte order */
2347
- uint16 version; /* Version number -- currently 1 */
2348
- uint16 _reserved; /* Reserved for future use -- zero for now */
2349
- uint32 strings_offset; /* Offset to start of string pool */
2350
- uint32 count; /* Number of entries in the string table */
2351
- uint32 capacity; /* Number of buckets (always a power of 2) */
2352
- uint32 max_value_length;
2353
- /* Length of longest result path (excl. '\0') */
2354
- struct hmap_bucket buckets[1];
2355
- /* Inline array of 'capacity' maptable buckets */
2356
- /* Strings follow the buckets, at strings_offset. */
2357
- };
2358
- #endif
2359
-
2360
903
  static char * norm_dir(
2361
904
  const char * dirname, /* Directory path to normalize */
2362
905
  int framework /* Setting a framework directory*/
@@ -2368,43 +911,10 @@ static char * norm_dir(
2368
911
  {
2369
912
  char * norm_name;
2370
913
 
2371
- #if COMPILER == GNUC
2372
- if (sysroot && sys_dirp) {
2373
- /* Logical system root specified and dirname is system header dir */
2374
- char delim[ 2] = { EOS, EOS};
2375
- char * dir;
2376
- #if SYSTEM == SYS_MAC
2377
- if (! framework && memcmp( dirname, "/usr/", 5) != 0)
2378
- return NULL; /* /Developer/usr/lib/gcc/ */
2379
- #endif
2380
- if (dirname[ 0] != PATH_DELIM)
2381
- delim[ 0] = PATH_DELIM;
2382
- dir = xmalloc( strlen( sysroot) + strlen( dirname) + 2);
2383
- sprintf( dir, "%s%s%s", sysroot, delim, dirname);
2384
- dirname = dir;
2385
- }
2386
- #endif
2387
- #if SYSTEM == SYS_MAC && COMPILER == GNUC
2388
- if (strlen( dirname) > 5
2389
- && str_case_eq( dirname + strlen( dirname) - 5, ".hmap")) {
2390
- /* "header map" file (not an include directory) */
2391
- norm_name = norm_path( null, dirname, FALSE, TRUE);
2392
- if (! norm_name && option_flags.v)
2393
- mcpp_fprintf( ERR, "Invalid header map file \"%s\" is ignored\n"
2394
- , dirname);
2395
- } else
2396
- #endif
2397
914
  {
2398
915
  norm_name = norm_path( dirname, NULL, FALSE, FALSE);
2399
916
  /* Normalize the pathname to compare */
2400
- if (! norm_name && option_flags.v && ! (mcpp_debug & MACRO_CALL))
2401
- mcpp_fprintf( ERR, "Non-existent directory \"%s\" is ignored\n"
2402
- , dirname);
2403
917
  }
2404
- #if COMPILER == GNUC
2405
- if (sysroot && sys_dirp)
2406
- free( dirname);
2407
- #endif
2408
918
 
2409
919
  return norm_name;
2410
920
  }
@@ -2479,18 +989,6 @@ static char * norm_path(
2479
989
  || (fname && ! S_ISREG( st_buf.st_mode)))
2480
990
  /* Not a regular file though 'fname' is specified */
2481
991
  return NULL;
2482
- #if SYSTEM == SYS_MAC && COMPILER == GNUC
2483
- if (hmap) { /* Dirty "header map" file */
2484
- struct hmap_header_map hmap;
2485
- size_t cnt;
2486
- FILE * fp;
2487
- fp = fopen( fname, "r");
2488
- cnt = fread( & hmap, sizeof (struct hmap_header_map), 1, fp);
2489
- fclose( fp);
2490
- if (cnt == 0 || hmap.magic != HMAP_SAME_ENDIANNESS_MAGIC)
2491
- return NULL;
2492
- }
2493
- #endif
2494
992
  if (! fname) {
2495
993
  slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
2496
994
  slbuf1[ ++len] = EOS;
@@ -2678,160 +1176,31 @@ static void deref_syml(
2678
1176
  /* Dereference symbolic linked directory */
2679
1177
  {
2680
1178
  char * cp2;
2681
- int len; /* Should be int, not size_t */
2682
-
2683
- while ((chk_start = strchr( chk_start, PATH_DELIM)) != NULL) {
2684
- *chk_start = EOS;
2685
- if ((len = readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
2686
- /* Dereference symbolic linked directory */
2687
- cp2 = strrchr( slbuf1, PATH_DELIM); /* Previous delimiter */
2688
- *chk_start = PATH_DELIM;
2689
- strcpy( slbuf2 + len, chk_start);
2690
- if (slbuf2[ 0] == PATH_DELIM) { /* Absolute path */
2691
- strcpy( slbuf1, slbuf2);
2692
- chk_start = slbuf1 + len + 1;
2693
- } else {
2694
- if (cp2)
2695
- chk_start = cp2 + 1;
2696
- else
2697
- chk_start = slbuf1;
2698
- strcpy( chk_start, slbuf2); /* Rewrite the path */
2699
- chk_start += len;
2700
- }
2701
- } else {
2702
- *chk_start++ = PATH_DELIM;
2703
- }
2704
- }
2705
- }
2706
- #endif
2707
-
2708
- #if COMPILER == GNUC
2709
-
2710
- static void init_gcc_macro( void)
2711
- /*
2712
- * Predefine GCC macros.
2713
- * This routine should be called after opening output file in order to putout
2714
- * macro informations by -K option into the file.
2715
- * Also this routine should be called before undef_macros() in order to
2716
- * permit undefining a macro by -U option.
2717
- */
2718
- {
2719
- char fname[ BUFSIZ];
2720
- char lbuf[ BUFSIZ];
2721
- char * include_dir; /* The version-specific include directory */
2722
- char * tmp;
2723
- FILE * fp;
2724
- DEFBUF * defp;
2725
- const char * cp;
2726
- char * tp;
2727
- int i;
2728
-
2729
- if (nflag) /* -undef option */
2730
- goto undef_special;
2731
-
2732
- tmp = xmalloc( strlen( INC_DIR) + strlen( "/mingw/mcpp-gcc-")
2733
- + strlen( arch) + 1);
2734
- #if SYSTEM == SYS_CYGWIN
2735
- if (no_cygwin) {
2736
- sprintf( tmp, "%s/mingw/mcpp-gcc-%s", INC_DIR, arch);
2737
- } else {
2738
- sprintf( tmp, "%s/mcpp-gcc-%s", INC_DIR, arch);
2739
- }
2740
- #else
2741
- sprintf( tmp, "%s/mcpp-gcc-%s", INC_DIR, arch);
2742
- #endif
2743
- include_dir = norm_path( tmp, NULL, TRUE, FALSE);
2744
- free( tmp);
2745
-
2746
- for (i = 0; i <= 1; i++) {
2747
- int nargs;
2748
-
2749
- if ((mcpp_mode == POST_STD || ansi) && i == 0)
2750
- continue; /* POST_STD or __STRICT_ANSI__ does not */
2751
- /* predefine non-conforming macros */
2752
- /* The predefined macro file */
2753
- cp = i ? "std" : "old";
2754
- sprintf( fname, "%sg%s%d%d_predef_%s.h"
2755
- , include_dir, cplus_val ? "xx" : "cc"
2756
- , gcc_maj_ver, gcc_min_ver, cp);
2757
- /* Note that norm_path() append a PATH_DELIM. */
2758
- if ((fp = fopen( fname, "r")) == NULL) {
2759
- mcpp_fprintf( ERR, "The mode for %s has not been installed.\n"
2760
- , arch);
2761
- longjmp( error_exit, -1);
2762
- }
2763
- nargs = i ? 0 : DEF_NOARGS_PREDEF_OLD;
2764
- /* g*_predef_std.h has DEF_NOARGS_PREDEF or non-negative args */
2765
- /* while g*_predef_old.h has only DEF_NOARGS_PREDEF_OLD args */
2766
- while (fgets( lbuf, BUFSIZ, fp) != NULL) {
2767
- unget_string( lbuf, "gcc_predefine");
2768
- if (skip_ws() == '#'
2769
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
2770
- == NAM
2771
- && str_eq( work_buf, "define")) {
2772
- defp = do_define( TRUE, nargs); /* Ignore re-definition */
2773
- }
2774
- skip_nl();
2775
- }
2776
- }
2777
- free( include_dir);
2778
-
2779
- undef_special:
2780
- if (look_id( "__OPTIMIZE__")) /* -O option is specified */
2781
- undefine( "__NO_INLINE__");
2782
- }
2783
-
2784
- static void chk_env( void)
2785
- /*
2786
- * Check the environment variables to specify output of dependency lines.
2787
- */
2788
- {
2789
- char * env;
2790
- char * cp;
2791
-
2792
- /* Output of dependency lines */
2793
- if ((env = getenv( "DEPENDENCIES_OUTPUT")) == NULL) {
2794
- if ((env = getenv( "SUNPRO_DEPENDENCIES")) == NULL)
2795
- return;
2796
- else
2797
- mkdep |= MD_SYSHEADER;
2798
- }
2799
- mkdep |= MD_MKDEP;
2800
- if ((cp = strchr( env, ' ')) != NULL) {
2801
- *cp++ = EOS;
2802
- while (*cp == ' ')
2803
- cp++;
2804
- }
2805
- if (! mkdep_fp) /* Command line option precedes */
2806
- mkdep_fp = fopen( env, "a");
2807
- if (! mkdep_target)
2808
- mkdep_target = cp;
2809
- }
2810
-
2811
- #elif COMPILER == MSC
2812
-
2813
- static void init_msc_macro( void)
2814
- /*
2815
- * Define a few MSC-specific predefined macros.
2816
- */
2817
- {
2818
- DEFBUF * defp;
2819
- int i;
1179
+ int len; /* Should be int, not size_t */
2820
1180
 
2821
- defp = look_id( "_MSC_VER");
2822
- i = atoi( defp->repl);
2823
- if (i >= 1400) { /* _MSC_VER >= 1400 */
2824
- look_and_install( "_MT", DEF_NOARGS_PREDEF, null, "1");
2825
- if (cplus_val && ! wchar_t_modified) {
2826
- /* -Zc:wchar_t- was not specified */
2827
- look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF
2828
- , null, "1");
2829
- look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF, null
2830
- , "1");
1181
+ while ((chk_start = strchr( chk_start, PATH_DELIM)) != NULL) {
1182
+ *chk_start = EOS;
1183
+ if ((len = readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
1184
+ /* Dereference symbolic linked directory */
1185
+ cp2 = strrchr( slbuf1, PATH_DELIM); /* Previous delimiter */
1186
+ *chk_start = PATH_DELIM;
1187
+ strcpy( slbuf2 + len, chk_start);
1188
+ if (slbuf2[ 0] == PATH_DELIM) { /* Absolute path */
1189
+ strcpy( slbuf1, slbuf2);
1190
+ chk_start = slbuf1 + len + 1;
1191
+ } else {
1192
+ if (cp2)
1193
+ chk_start = cp2 + 1;
1194
+ else
1195
+ chk_start = slbuf1;
1196
+ strcpy( chk_start, slbuf2); /* Rewrite the path */
1197
+ chk_start += len;
1198
+ }
1199
+ } else {
1200
+ *chk_start++ = PATH_DELIM;
2831
1201
  }
2832
1202
  }
2833
1203
  }
2834
-
2835
1204
  #endif
2836
1205
 
2837
1206
  static void def_macros( void)
@@ -2888,12 +1257,10 @@ void put_depend(
2888
1257
  size_t fnamlen; /* Length of filename */
2889
1258
 
2890
1259
  if (fp == NULL) { /* Main source file. Have to initialize. */
2891
- #if MCPP_LIB
2892
1260
  if (output != NULL) {
2893
1261
  free( output);
2894
1262
  free( pos);
2895
1263
  }
2896
- #endif
2897
1264
  output = xmalloc( mkdep_len = MKDEP_INITLEN);
2898
1265
  pos = (size_t *) xmalloc( (pos_max = MKDEP_INIT) * sizeof (size_t));
2899
1266
  out_p = md_init( filename, output);
@@ -3104,7 +1471,7 @@ int do_include(
3104
1471
  }
3105
1472
  fname = infile->bptr - 1; /* Current token for diagnosis */
3106
1473
 
3107
- if (standard && (char_type[ delim] & LET)) { /* Maybe macro */
1474
+ if ((char_type[ delim] & LET)) { /* Maybe macro */
3108
1475
  int c;
3109
1476
  char *hp;
3110
1477
 
@@ -3148,17 +1515,9 @@ found_name:
3148
1515
  fname = save_string( &work_buf[ 1]); /* the starting delimiter. */
3149
1516
 
3150
1517
  if (skip_ws() != '\n') {
3151
- if (standard) {
3152
- cerror( excess_token, infile->bptr-1, 0L, NULL);
3153
- skip_nl();
3154
- goto error;
3155
- } else if (mcpp_mode == OLD_PREP) {
3156
- skip_nl();
3157
- } else {
3158
- if (warn_level & 1)
3159
- cwarn( excess_token, infile->bptr-1, 0L, NULL);
3160
- skip_nl();
3161
- }
1518
+ cerror( excess_token, infile->bptr-1, 0L, NULL);
1519
+ skip_nl();
1520
+ goto error;
3162
1521
  }
3163
1522
 
3164
1523
  #if SYS_FAMILY == SYS_WIN
@@ -3224,14 +1583,6 @@ static int open_include(
3224
1583
  if (mcpp_debug & PATH)
3225
1584
  mcpp_fprintf( DBG, "filename: %s\n", filename);
3226
1585
 
3227
- #if COMPILER == GNUC
3228
- if (! full_path) {
3229
- if (i_split /* -I- option is specified */
3230
- || next) /* or #include_next */
3231
- goto search_dirs;
3232
- }
3233
- #endif
3234
-
3235
1586
  if ((searchlocal && ((search_rule & CURRENT) || !has_dir)) || full_path) {
3236
1587
  /*
3237
1588
  * Look in local directory first.
@@ -3253,28 +1604,6 @@ static int open_include(
3253
1604
  return TRUE;
3254
1605
  }
3255
1606
 
3256
- #if COMPILER == MSC
3257
- if (searchlocal) {
3258
- /* Visual C searches ancestor source's directory, too. */
3259
- FILEINFO * file = infile;
3260
- while ((file = file->parent) != NULL) {
3261
- /* Search each parent includer's directory */
3262
- if (open_file( file->dirp, src_dir, filename, TRUE, FALSE, FALSE))
3263
- return TRUE;
3264
- }
3265
- }
3266
- #endif
3267
- #if COMPILER == GNUC
3268
- search_dirs:
3269
- if (searchlocal) {
3270
- /* Search the directories specified by -iquote option, if any. */
3271
- const char ** qdir;
3272
- for (qdir = quote_dir; qdir < quote_dir_end; qdir++) {
3273
- if (open_file( qdir, NULL, filename, FALSE, FALSE, FALSE))
3274
- return TRUE;
3275
- }
3276
- }
3277
- #endif
3278
1607
  /* Search the include directories */
3279
1608
  if (search_dir( filename, searchlocal, next))
3280
1609
  return TRUE;
@@ -3344,26 +1673,10 @@ static int search_dir(
3344
1673
  const char ** incptr; /* -> inlcude directory */
3345
1674
 
3346
1675
  incptr = incdir;
3347
- #if COMPILER == GNUC
3348
- if (next && **inc_dirp != EOS)
3349
- incptr = inc_dirp + 1;
3350
- /* In case of include_next search after the includer's directory */
3351
- #endif
3352
1676
 
3353
1677
  for ( ; incptr < incend; incptr++) {
3354
1678
  if (strlen( *incptr) + strlen( filename) >= PATHMAX)
3355
1679
  cfatal( toolong_fname, *incptr, 0L, filename); /* _F_ */
3356
- #if SYSTEM == SYS_MAC
3357
- if (incptr == to_search_framework && ! searchlocal) {
3358
- /* Now search the framework dirs */
3359
- if (search_framework( filename)) { /* Found */
3360
- if (in_import) /* "#import"ed file is once only */
3361
- do_once( infile->full_fname);
3362
- return TRUE;
3363
- }
3364
- /* Else continue to search incptr */
3365
- }
3366
- #endif
3367
1680
  if (open_file( incptr, NULL, filename, FALSE, FALSE, FALSE))
3368
1681
  /* Now infile has been renewed */
3369
1682
  return TRUE;
@@ -3400,17 +1713,6 @@ static int open_file(
3400
1713
  const char * fname;
3401
1714
 
3402
1715
  errno = 0; /* Clear errno possibly set by path searching */
3403
- #if SYSTEM == SYS_MAC && COMPILER == GNUC
3404
- if (strlen( *dirp) > 5
3405
- && str_case_eq( *dirp + strlen( *dirp) - 5, ".hmap")) {
3406
- /* Search header map file for a header */
3407
- if (! search_header_map( *dirp, filename, dir_fname))
3408
- return NULL;
3409
- fname = dir_fname; /* Found a path-list */
3410
- dirp = &null;
3411
- goto search;
3412
- } else
3413
- #endif
3414
1716
  {
3415
1717
  if (mcpp_debug & PATH)
3416
1718
  mcpp_fprintf( DBG, "Searching %s%s%s\n", *dirp
@@ -3425,12 +1727,12 @@ static int open_file(
3425
1727
  } else {
3426
1728
  fname = filename;
3427
1729
  }
3428
- search:
1730
+
3429
1731
  fullname = norm_path( *dirp, fname, TRUE, FALSE);
3430
1732
  /* Convert to absolute path */
3431
1733
  if (! fullname) /* Non-existent or directory */
3432
1734
  return FALSE;
3433
- if (standard && included( fullname)) /* Once included */
1735
+ if (included( fullname)) /* Once included */
3434
1736
  goto true;
3435
1737
 
3436
1738
  if ((max_open != 0 && max_open <= include_nest)
@@ -3483,25 +1785,10 @@ search:
3483
1785
  infile->dirp = inc_dirp = dirp;
3484
1786
  #if 0 /* This part is only for debugging */
3485
1787
  chk_dirp( dirp);
3486
- #endif
3487
- #if COMPILER == GNUC
3488
- if ((**dirp != EOS && sys_dirp <= dirp && dirp <= incend)
3489
- #if SYSTEM == SYS_MAC
3490
- || sys_frame
3491
- #endif
3492
- )
3493
- infile->sys_header = TRUE; /* Found in a system header dir */
3494
- else
3495
- infile->sys_header = FALSE;
3496
1788
  #endif
3497
1789
  cur_fullname = fullname;
3498
1790
 
3499
- if (option_flags.z) {
3500
- no_output++; /* Don't output the included file */
3501
- if (include_nest == 2)
3502
- mcpp_fprintf( OUT, "#include \"%s\"\n", fullname);
3503
- /* Output #include line instead, if it is in main source file */
3504
- } else if (! include_opt) { /* Do not sharp() on -include */
1791
+ if (! include_opt) { /* Do not sharp() on -include */
3505
1792
  src_line = 1; /* Working on line 1 now */
3506
1793
  sharp( NULL, 1); /* Print out the included file name */
3507
1794
  }
@@ -3538,7 +1825,7 @@ void add_file(
3538
1825
  //
3539
1826
  // When encoding is UTF-8, skip BOM if present.
3540
1827
  //
3541
- if(mbchar == UTF8 && fp != NULL && ftell(fp) == 0)
1828
+ if(fp != NULL && ftell(fp) == 0)
3542
1829
  {
3543
1830
  const unsigned char UTF8_BOM[3] = {0xEF, 0xBB, 0xBF};
3544
1831
  unsigned char FILE_HEAD[3] = {0, 0, 0};
@@ -3570,7 +1857,7 @@ void add_file(
3570
1857
 
3571
1858
  if (include_nest >= INCLUDE_NEST) /* Probably recursive #include */
3572
1859
  cfatal( too_many_include_nest, NULL, (long) INCLUDE_NEST, NULL);
3573
- if (standard && (warn_level & 4)
1860
+ if ((warn_level & 4)
3574
1861
  && include_nest == std_limits.inc_nest + 1)
3575
1862
  cwarn( too_many_include_nest, NULL, (long) std_limits.inc_nest, NULL);
3576
1863
  include_nest++;
@@ -3616,228 +1903,6 @@ static const char * set_fname(
3616
1903
  return filename;
3617
1904
  }
3618
1905
 
3619
- #if SYSTEM == SYS_MAC
3620
- #if COMPILER == GNUC
3621
-
3622
- /* Routines to search "header map" file of Xcode / Apple-GCC. */
3623
- /* search_header_map() and hmap_hash() were written referring to */
3624
- /* c-incpath.c of Apple-GCC-4.0.1. */
3625
-
3626
- static char * search_header_map(
3627
- const char * hmap_file, /* Header map file */
3628
- const char * filename, /* Filename to search */
3629
- char * pathlist /* Buffer for a found pathlist */
3630
- )
3631
- /*
3632
- * Search a table in "header map" file for a header.
3633
- */
3634
- {
3635
- struct stat stat_buf;
3636
- FILE * fp;
3637
- size_t fsize;
3638
- const char * contents;
3639
- struct hmap_header_map * hmap;
3640
- struct hmap_bucket * buckets;
3641
- const char * strings;
3642
- uint32 mask;
3643
- uint32 key_offs;
3644
- uint32 i;
3645
-
3646
- stat( hmap_file, &stat_buf); /* Get size of the file */
3647
- fsize = stat_buf.st_size;
3648
- contents = xmalloc( fsize + 1);
3649
- fp = fopen( hmap_file, "r");
3650
- fread( contents, fsize, 1, fp); /* Read whole of the file at once */
3651
- hmap = (struct hmap_header_map *) contents;
3652
-
3653
- strings = ((const char *) hmap) + hmap->strings_offset;
3654
- buckets = hmap->buckets;
3655
- mask = hmap->capacity - 1;
3656
- i = hmap_hash( filename) & mask;
3657
- while ((key_offs = buckets[ i].key) != 0) {
3658
- if (str_case_eq( filename, strings + key_offs)) {
3659
- /* The names match. Make path-list. */
3660
- char * cp = stpcpy( pathlist, strings + buckets[ i].value.prefix);
3661
- strcpy( cp, strings + buckets[ i].value.suffix);
3662
- break;
3663
- }
3664
- i = ++i & mask;
3665
- }
3666
- free( contents);
3667
- return key_offs ? pathlist : NULL;
3668
- }
3669
-
3670
- static unsigned hmap_hash(
3671
- const char * fname /* header name */
3672
- )
3673
- /*
3674
- * Get hash value for the fname.
3675
- */
3676
- {
3677
- const char * sp;
3678
- unsigned hash_code = 0;
3679
-
3680
- for (sp = fname; *sp; sp++)
3681
- hash_code += tolower( *sp & 0xFF) * 13;
3682
- return hash_code;
3683
- }
3684
- #endif /* COMPILER == GNUC */
3685
-
3686
- static void init_framework( void)
3687
- /*
3688
- * Initialize framework[].
3689
- */
3690
- {
3691
- char * framework_dir;
3692
- /* Some frameworks may have been already specified by -F option. */
3693
- sys_framework = num_framework; /* These are system frameworks */
3694
- #ifdef FRAMEWORK1
3695
- framework_dir = norm_dir( FRAMEWORK1, TRUE);
3696
- if (framework_dir)
3697
- framework[ num_framework++] = framework_dir;
3698
- #endif
3699
- #ifdef FRAMEWORK2
3700
- framework_dir = norm_dir( FRAMEWORK2, TRUE);
3701
- if (framework_dir)
3702
- framework[ num_framework++] = framework_dir;
3703
- #endif
3704
- #ifdef FRAMEWORK3
3705
- framework_dir = norm_dir( FRAMEWORK3, TRUE);
3706
- if (framework_dir)
3707
- framework[ num_framework++] = framework_dir;
3708
- #endif
3709
- if (num_framework >= MAX_FRAMEWORK) {
3710
- mcpp_fputs( "Too many Framework directories.", ERR);
3711
- longjmp( error_exit, -1);
3712
- }
3713
- }
3714
-
3715
- static const char * dot_frame = ".framework";
3716
-
3717
- static int search_framework(
3718
- char * filename
3719
- )
3720
- /*
3721
- * Search "Framework" directories.
3722
- * 'frame/header.h' is converted to
3723
- * '/System/Library/Frameworks/frame.framework/Headers/header.h',
3724
- * '/System/Library/Frameworks/frame.framework/PrivateHeaders/header.h',
3725
- * and so on.
3726
- */
3727
- {
3728
- char fullname[ PATHMAX + 1];
3729
- FILEINFO * file;
3730
- char * frame, * fname, * cp1, * cp2;
3731
- int sys_frame = FALSE;
3732
- int i;
3733
-
3734
- cp1 = cp2 = strchr( filename, PATH_DELIM);
3735
- /*
3736
- * 'filename' should be <frame/header> format or sometimes
3737
- * <frame/dir/header>.
3738
- * e.g.: <Foundation/Foundation.h>, <CarbonCore/OSUtils.h>
3739
- * or <IOKit/pwr_mgt/IOPMLib.h>.
3740
- */
3741
- if (! cp1)
3742
- return FALSE;
3743
- *cp1 = EOS;
3744
- frame = filename;
3745
- fname = cp1 + 1;
3746
-
3747
- /* Search framework[] directories */
3748
- for (i = 0; i < num_framework; i++) {
3749
- cp1 = stpcpy( fullname, framework[ i]);
3750
- /* 'fullname' e.g.: /System/Library/Frameworks/ */
3751
- if (search_subdir( fullname, cp1, frame, fname, sys_framework <= i))
3752
- return TRUE;
3753
- }
3754
-
3755
- /*
3756
- * Search subframework dirs searching its possible parent framework
3757
- * starting from current file's directory to its ancestors.
3758
- * Header file in subframework directories should be included only
3759
- * by its parent or sibling framework headers.
3760
- */
3761
- for (i = sys_framework; i < num_framework; i++) {
3762
- size_t frame_len, fname_len;
3763
- frame_len = strlen( framework[ i]);
3764
- fname_len = strlen( infile->real_fname);
3765
- if (fname_len <= frame_len)
3766
- continue;
3767
- if (memcmp( framework[ i], infile->real_fname, frame_len) == 0) {
3768
- sys_frame = TRUE;
3769
- break;
3770
- }
3771
- }
3772
- for (file = infile; file; file = file->parent) {
3773
- const char * dot;
3774
- size_t len;
3775
-
3776
- if (! file->fp)
3777
- continue;
3778
- dot = strstr( file->real_fname, dot_frame);
3779
- if (! dot)
3780
- continue;
3781
- len = dot - file->real_fname + strlen( dot_frame) + 1;
3782
- memcpy( fullname, file->real_fname, len);
3783
- cp1 = fullname + len;
3784
- cp1 = stpcpy( cp1, "Frameworks/");
3785
- /* 'fullname' e.g.: */
3786
- /* /System/Library/Frameworks/Foundation.framework/Frameworks/ */
3787
- if (search_subdir( fullname, cp1, frame, fname, sys_frame))
3788
- return TRUE;
3789
- }
3790
-
3791
- *cp2 = PATH_DELIM; /* Restore original include file format */
3792
-
3793
- return FALSE;
3794
- }
3795
-
3796
- static int search_subdir(
3797
- char * fullname, /* Buffer for path-list to open */
3798
- char * cp, /* Latter half of 'fullname' */
3799
- char * frame, /* 'frame' of <frame/header> */
3800
- char * fname, /* 'header' of <frame/header> */
3801
- /* or sometimes 'dir/header' of <frame/dir/header> */
3802
- int sys_frame /* System framework header ? */
3803
- )
3804
- /*
3805
- * Make path-list and try to open.
3806
- */
3807
- {
3808
- static const char * subdir[] = { "Headers", "PrivateHeaders", NULL};
3809
- int j, n;
3810
-
3811
- cp += sprintf( cp, "%s%s%c", frame, dot_frame, PATH_DELIM);
3812
- for (j = 0; subdir[ j] != NULL; j++) {
3813
- n = sprintf( cp, "%s%c%s", subdir[ j], PATH_DELIM, fname);
3814
- /*
3815
- * 'fullname' is for example:
3816
- * /System/Library/Frameworks/Foundation.framework/Headers/
3817
- * Foundation.h,
3818
- * /System/Library/Frameworks/Foundation.framework/Frameworks/
3819
- * CarbonCore.framework/Headers/OSUtils.h,
3820
- * or /System/Library/Frameworks/IOKit.framework/Headers/
3821
- * pwr_mgt/IOPMLib.h.
3822
- * Pass this as one filename argument to open_file() rather than
3823
- * deviding to directory part and file part. The first argument to
3824
- * open_file() which is a pointer to the directory part is remembered
3825
- * by FILEINFO struct. But, 'fullname' is over-written each time,
3826
- * and the former path-list is lost soon. Therefore, it cannot be
3827
- * passed as the first argument. In addition, though the first
3828
- * argument to open_file() is needed for #include_next, this directive
3829
- * has no meaning in framework.
3830
- */
3831
- if ((cp - fullname) + n > PATHMAX)
3832
- cfatal( "Too long framework path", NULL, 0L, NULL); /* _F_ */
3833
- if (open_file( &null, NULL, fullname, FALSE, FALSE, sys_frame))
3834
- return TRUE;
3835
- }
3836
- return FALSE;
3837
- }
3838
-
3839
- #endif /* SYSTEM == SYS_MAC */
3840
-
3841
1906
  #if 0 /* This part is only for debugging */
3842
1907
  static int chk_dirp(
3843
1908
  const char ** dirp
@@ -3906,7 +1971,7 @@ void sharp(
3906
1971
  while (! file->fp)
3907
1972
  file = file->parent;
3908
1973
  line = sharp_file ? sharp_file->line : src_line;
3909
- if (no_output || option_flags.p || file == NULL
1974
+ if (no_output || file == NULL
3910
1975
  || (file == sh_file && line == sh_line))
3911
1976
  goto sharp_exit;
3912
1977
  sh_file = file;
@@ -3956,16 +2021,6 @@ static void cur_file(
3956
2021
  sharp_filename = save_string( name);
3957
2022
  }
3958
2023
  mcpp_fprintf( OUT, " \"%s\"", name);
3959
- #if COMPILER == GNUC
3960
- if (! std_line_prefix) {
3961
- if (flag) {
3962
- mcpp_fputc( ' ', OUT);
3963
- mcpp_fputc( '0' + flag, OUT);
3964
- }
3965
- if (file->sys_header)
3966
- mcpp_fputs( " 3", OUT);
3967
- }
3968
- #endif
3969
2024
  }
3970
2025
 
3971
2026
  #if SYS_FAMILY == SYS_WIN
@@ -3983,18 +2038,6 @@ static char * bsl2sl(
3983
2038
  cp = filename;
3984
2039
 
3985
2040
  while (*cp) {
3986
- if (bsl_in_mbchar) {
3987
- int c;
3988
- c = *cp & UCHARMAX;
3989
- if (char_type[ c] & mbchk) { /* First byte of MBCHAR */
3990
- char tmp[ PATHMAX];
3991
- char * tp = tmp;
3992
- *tp++ = *cp++;
3993
- mb_read( c, &cp, &tp);
3994
- /* Read over the multi-byte characters */
3995
- continue;
3996
- }
3997
- }
3998
2041
  if (*cp == '\\') {
3999
2042
  *cp++ = PATH_DELIM;
4000
2043
  if (!diagnosed && (warn_level & 2) && (warn_level != -1)) {
@@ -4073,13 +2116,8 @@ void do_pragma( void)
4073
2116
  }
4074
2117
  token_type = scan_token( c, (tp = work_buf, &tp), work_end);
4075
2118
  #if EXPAND_PRAGMA
4076
- #if COMPILER == MSC
4077
- if (token_type == NAM
4078
- && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
4079
- #else
4080
2119
  if (stdc3 && token_type == NAM
4081
2120
  && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
4082
- #endif
4083
2121
  DEFBUF * defp;
4084
2122
  char * mp;
4085
2123
  char * mp_end;
@@ -4157,80 +2195,7 @@ void do_pragma( void)
4157
2195
  if (warn && (warn_level & 1))
4158
2196
  cwarn( unknown_arg, identifier, 0L, NULL);
4159
2197
  goto skip_nl; /* Do not putout the line */
4160
- #if COMPILER == GNUC
4161
- /* The #pragma lines for GCC is skipped not to confuse cc1. */
4162
- } else if (str_eq( identifier, "GCC")) { /* #pragma GCC * */
4163
- if (scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == NAM) {
4164
- if (str_eq( identifier, "poison")
4165
- || str_eq( identifier, "dependency")) {
4166
- if (warn_level & 2)
4167
- cwarn( "Skipped the #pragma line" /*_W2_ */
4168
- , NULL, 0L, NULL);
4169
- goto skip_nl;
4170
- } else if (str_eq( identifier, "system_header")) {
4171
- infile->sys_header = TRUE; /* Mark as a system header */
4172
- goto skip_nl;
4173
- }
4174
- }
4175
- #endif
4176
-
4177
- #if COMPILER == MSC
4178
- } else if (str_eq( identifier, "setlocale")) {
4179
- if (skip_ws() == '('
4180
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
4181
- == STR
4182
- && skip_ws() == ')') {
4183
- if (! is_junk()) {
4184
- work_buf[ 0] = *(tp - 1) = '\0';
4185
- set_encoding( work_buf + 1, NULL, SETLOCALE);
4186
- work_buf[ 0] = *(tp - 1) = '"';
4187
- } /* else warned by is_junk() */
4188
- } else {
4189
- warn = TRUE;
4190
- }
4191
- #else /* COMPILER != MSC */
4192
- } else if (str_eq( identifier, "__setlocale")) {
4193
- if (skip_ws() == '('
4194
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
4195
- == STR
4196
- && skip_ws() == ')') {
4197
- if (! is_junk()) { /* #pragma __setlocale */
4198
- work_buf[ 0] = *(tp - 1) = '\0';
4199
- set_encoding( work_buf + 1, NULL, __SETLOCALE);
4200
- work_buf[ 0] = *(tp - 1) = '"';
4201
- } /* else warned by is_junk() */
4202
- } else {
4203
- warn = TRUE;
4204
- }
4205
- #endif
4206
-
4207
- #if COMPILER == MSC
4208
- } else if (str_eq( identifier, "push_macro")) {
4209
- push_or_pop( PUSH);
4210
- goto skip_nl;
4211
- } else if (str_eq( identifier, "pop_macro")) {
4212
- push_or_pop( POP);
4213
- goto skip_nl;
4214
- #endif
4215
-
4216
- #if COMPILER == LCC
4217
- } else if (str_eq( identifier, "optimize")
4218
- && (skip_ws() == '(')
4219
- && (char_type[ (c = skip_ws()) & UCHARMAX] == DIG)
4220
- && (skip_ws() == ')')) {
4221
- char tmp[ 2];
4222
2198
 
4223
- tmp[ 0] = c;
4224
- tmp[ 1] = EOS;
4225
- look_and_install( optim_name, DEF_NOARGS_PREDEF, null, tmp);
4226
- #endif
4227
-
4228
- #if COMPILER == COMPILER_UNKNOWN
4229
- /*
4230
- * Write here any compiler-specific #pragma sub-directive which should
4231
- * be processed by preprocessor.
4232
- */
4233
- #endif
4234
2199
  }
4235
2200
 
4236
2201
  if (warn) {
@@ -4268,7 +2233,7 @@ static void do_once(
4268
2233
  once_end = &once_list[ max_once];
4269
2234
  max_once *= 2;
4270
2235
  }
4271
- once_end->name = fullname;
2236
+ once_end->name = (char*)fullname;
4272
2237
  once_end->len = strlen( fullname);
4273
2238
  once_end++;
4274
2239
  }
@@ -4340,8 +2305,7 @@ static void push_or_pop(
4340
2305
  /* Else the current definition exists. Push it */
4341
2306
  s_def = sizeof (DEFBUF) + 3 + s_name
4342
2307
  + strlen( defp->repl) + strlen( defp->fname);
4343
- if (mcpp_mode == STD)
4344
- s_def += strlen( defp->parmnames);
2308
+ s_def += strlen( defp->parmnames);
4345
2309
  dp = (DEFBUF *) xmalloc( s_def);
4346
2310
  memcpy( dp, defp, s_def); /* Copy the definition */
4347
2311
  dp->link = *prevp; /* Insert to linked-list*/
@@ -4382,28 +2346,6 @@ static void push_or_pop(
4382
2346
  }
4383
2347
  }
4384
2348
 
4385
- static void do_asm(
4386
- int asm_start /* #asm ? */
4387
- )
4388
- /*
4389
- * #asm, #endasm
4390
- * Originally written for OS-9/09 Microware C.
4391
- */
4392
- {
4393
- if (! compiling)
4394
- return;
4395
- if (asm_start == (in_asm != 0L)) {
4396
- if (in_asm)
4397
- cerror( "In #asm block started at line %.0s%ld" /* _E_ */
4398
- , NULL, in_asm, NULL);
4399
- else
4400
- cerror( "Without #asm", NULL, 0L, NULL); /* _E_ */
4401
- skip_nl();
4402
- unget_ch();
4403
- return;
4404
- }
4405
- in_asm = asm_start ? src_line : 0L;
4406
- }
4407
2349
 
4408
2350
  void do_old( void)
4409
2351
  /*
@@ -4413,91 +2355,9 @@ void do_old( void)
4413
2355
  {
4414
2356
  static const char * const unknown
4415
2357
  = "Unknown #directive \"%s\"%.0ld%s"; /* _E_ _W8_ */
4416
- static const char * const ext
4417
- = "%s is not allowed by Standard%.0ld%s"; /* _W2_ _W8_*/
4418
-
4419
- #if COMPILER == GNUC
4420
- if (str_eq( identifier, "include_next")) {
4421
- if ((compiling && (warn_level & 2))
4422
- || (! compiling && (warn_level & 8)))
4423
- cwarn( ext, "#include_next", 0L
4424
- , compiling ? NULL : " (in skipped block)");
4425
- if (! compiling)
4426
- return;
4427
- in_include = TRUE;
4428
- do_include( TRUE);
4429
- in_include = FALSE;
4430
- return;
4431
- } else if (str_eq( identifier, "warning")) {
4432
- if ((compiling && (warn_level & 2))
4433
- || (! compiling && (warn_level & 8)))
4434
- cwarn( ext, "#warning", 0L
4435
- , compiling ? NULL : " (in skipped block)");
4436
- if (! compiling)
4437
- return;
4438
- cwarn( infile->buffer, NULL, 0L, NULL);
4439
- /* Always output the warning */
4440
- skip_nl();
4441
- unget_ch();
4442
- return;
4443
- } else if (str_eq( identifier, "ident") || str_eq( identifier, "sccs")) {
4444
- if ((compiling && (warn_level & 1))
4445
- || (! compiling && (warn_level & 8))) {
4446
- if (str_eq( identifier, "ident"))
4447
- cwarn(
4448
- compiling ? "Ignored #ident" : "#ident (in skipped block)" /* _W1_ _W8_*/
4449
- , NULL, 0L, NULL);
4450
- else
4451
- cwarn(
4452
- compiling ? "Ignored #sccs" : "#sccs (in skipped block)" /* _W1_ _W8_*/
4453
- , NULL, 0L, NULL);
4454
- }
4455
- if (! compiling)
4456
- return;
4457
- skip_nl();
4458
- unget_ch();
4459
- return;
4460
- }
4461
- #endif /* COMPILER == GNUC */
4462
-
4463
- #if COMPILER == MSC
4464
- if (str_eq( identifier, "using") || str_eq( identifier, "import")) {
4465
- /* #using or #import */
4466
- if (! compiling)
4467
- return;
4468
- mcpp_fputs( infile->buffer, OUT); /* Putout the line as is*/
4469
- skip_nl();
4470
- unget_ch();
4471
- return;
4472
- }
4473
- #endif
4474
-
4475
- #if SYSTEM == SYS_MAC
4476
- if (str_eq( identifier, "import")) {
4477
- if ((compiling && (warn_level & 2))
4478
- || (! compiling && (warn_level & 8)))
4479
- cwarn( ext, "#import", 0L
4480
- , compiling ? NULL : " (in skipped block)");
4481
- if (! compiling)
4482
- return;
4483
- in_import = in_include = TRUE;
4484
- do_include( FALSE);
4485
- in_import = in_include = FALSE;
4486
- return;
4487
- }
4488
- #endif
4489
-
4490
- if (! standard && do_prestd_directive())
4491
- return;
4492
2358
 
4493
2359
  if (compiling) {
4494
- if (option_flags.lang_asm) { /* "Assembler" source */
4495
- if (warn_level & 1)
4496
- cwarn( unknown, identifier, 0L, NULL);
4497
- mcpp_fputs( infile->buffer, OUT); /* Putout the line */
4498
- } else {
4499
- cerror( unknown, identifier, 0L, NULL);
4500
- }
2360
+ cerror( unknown, identifier, 0L, NULL);
4501
2361
  } else if (warn_level & 8) {
4502
2362
  cwarn( unknown, identifier, 0L, " (in skipped block)");
4503
2363
  }
@@ -4506,80 +2366,6 @@ void do_old( void)
4506
2366
  return;
4507
2367
  }
4508
2368
 
4509
- static int do_prestd_directive( void)
4510
- /*
4511
- * Process directives for pre-Standard mode.
4512
- */
4513
- {
4514
- #if COMPILER != GNUC
4515
- if (str_eq( identifier, "assert")) { /* #assert */
4516
- if (! compiling) /* Only validity check */
4517
- return TRUE;
4518
- if (eval_if() == 0L) { /* Assert expression */
4519
- cerror( "Preprocessing assertion failed" /* _E_ */
4520
- , NULL, 0L, NULL);
4521
- skip_nl();
4522
- unget_ch();
4523
- }
4524
- return TRUE;
4525
- } else
4526
- #endif
4527
- if (str_eq( identifier, "put_defines")) {
4528
- if (! compiling) /* Only validity check */
4529
- return TRUE;
4530
- if (mcpp_mode != OLD_PREP && ! is_junk())
4531
- dump_def( TRUE, FALSE); /* #put_defines */
4532
- skip_nl();
4533
- unget_ch();
4534
- return TRUE;
4535
- } else if (str_eq( identifier, "preprocess")) {
4536
- if (! compiling) /* Only validity check */
4537
- return TRUE;
4538
- if (mcpp_mode != OLD_PREP && ! is_junk())
4539
- /* Just putout the directive for the succeding preprocessor */
4540
- mcpp_fputs( "#preprocessed\n", OUT);
4541
- skip_nl();
4542
- unget_ch();
4543
- return TRUE;
4544
- } else if (str_eq( identifier, "preprocessed")) {
4545
- if (! compiling) /* Only validity check */
4546
- return TRUE;
4547
- if (mcpp_mode != OLD_PREP && ! is_junk()) {
4548
- skip_nl();
4549
- do_preprocessed(); /* #preprocessed */
4550
- return TRUE;
4551
- }
4552
- skip_nl();
4553
- unget_ch();
4554
- return TRUE;
4555
- }
4556
-
4557
- if (str_eq( identifier, "debug")) { /* #debug <args> */
4558
- if (! compiling) /* Only validity check */
4559
- return TRUE;
4560
- do_debug( TRUE);
4561
- return TRUE;
4562
- } else if (str_eq( identifier, "end_debug")) {
4563
- if (! compiling)
4564
- return TRUE;
4565
- do_debug( FALSE); /* #end_debug <args> */
4566
- return TRUE;
4567
- }
4568
-
4569
- if (str_eq( identifier, "asm")) { /* #asm */
4570
- do_asm( TRUE);
4571
- return TRUE;
4572
- }
4573
- if (str_eq( identifier, "endasm")) { /* #endasm */
4574
- do_asm( FALSE);
4575
- skip_nl(); /* Skip comments, etc. */
4576
- unget_ch();
4577
- return TRUE;
4578
- }
4579
-
4580
- return FALSE; /* Unknown directive */
4581
- }
4582
-
4583
2369
  static void do_preprocessed( void)
4584
2370
  /*
4585
2371
  * The source file has been already preprocessed.
@@ -4731,14 +2517,15 @@ static int do_debug(
4731
2517
  else if (num == MEMORY)
4732
2518
  print_heap();
4733
2519
  else if (num == MACRO_CALL)
4734
- option_flags.k = TRUE; /* This pragma needs this mode */
2520
+ // option_flags.k = TRUE; /* This pragma needs this mode */
2521
+ ;
4735
2522
  } else {
4736
2523
  mcpp_debug &= ~num;
4737
2524
  }
4738
2525
  }
4739
2526
  c = skip_ws();
4740
2527
  }
4741
- if ((mcpp_mode != STD && (mcpp_debug & MACRO_CALL)) || c != '\n') {
2528
+ if (c != '\n') {
4742
2529
  if (warn_level & 1) {
4743
2530
  if (c != '\n') {
4744
2531
  cwarn( not_ident, work_buf, 0L, NULL);
@@ -4757,18 +2544,6 @@ diagnosed:
4757
2544
  return TRUE;
4758
2545
  }
4759
2546
 
4760
- void put_asm( void)
4761
- /*
4762
- * Put out source line as it is.
4763
- */
4764
- {
4765
- #if 0
4766
- mcpp_fputs( "#2\n", OUT);
4767
- mcpp_fputs( infile->buffer, OUT);
4768
- skip_nl();
4769
- #endif
4770
- }
4771
-
4772
2547
  static void dump_path( void)
4773
2548
  /*
4774
2549
  * Show the include directories.
@@ -4777,7 +2552,6 @@ static void dump_path( void)
4777
2552
  const char ** incptr;
4778
2553
  const char * inc_dir;
4779
2554
  const char * dir = "./";
4780
- int i;
4781
2555
 
4782
2556
  mcpp_fputs( "Include paths are as follows --\n", DBG);
4783
2557
  for (incptr = incdir; incptr < incend; incptr++) {
@@ -4787,12 +2561,6 @@ static void dump_path( void)
4787
2561
  mcpp_fprintf( DBG, " %s\n", inc_dir);
4788
2562
  }
4789
2563
  mcpp_fputs( "End of include path list.\n", DBG);
4790
- #if SYSTEM == SYS_MAC
4791
- mcpp_fputs( "Framework paths are as follows --\n", DBG);
4792
- for (i = 0; i < num_framework; i++ )
4793
- mcpp_fprintf( DBG, " %s\n", framework[ i]);
4794
- mcpp_fputs( "End of framework path list.\n", DBG);
4795
- #endif
4796
2564
  }
4797
2565
 
4798
2566
  /*
@@ -4912,13 +2680,8 @@ void at_end( void)
4912
2680
  * Handle the commands to be executed at the end of processing.
4913
2681
  */
4914
2682
  {
4915
- #if COMPILER == GNUC
4916
- if (dMflag || dDflag)
4917
- dump_def( FALSE, FALSE);
4918
- #endif
4919
2683
  }
4920
2684
 
4921
- #if MCPP_LIB
4922
2685
  void clear_filelist( void)
4923
2686
  /*
4924
2687
  * Free malloced memory for filename-list and directory-list.
@@ -4933,8 +2696,5 @@ void clear_filelist( void)
4933
2696
  for (namep = fnamelist; namep < fname_end; namep++)
4934
2697
  free( (void *) namep->name);
4935
2698
  free( (void *) fnamelist);
4936
- if (standard)
4937
- free( (void *) once_list);
2699
+ free( (void *) once_list);
4938
2700
  }
4939
- #endif
4940
-