zeroc-ice 3.6b1 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
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
-