zeroc-ice 3.7.10 → 3.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Connection.cpp +536 -0
  3. data/dist/IceRuby/Endpoint.cpp +344 -0
  4. data/dist/IceRuby/ImplicitContext.cpp +148 -0
  5. data/dist/IceRuby/Logger.cpp +151 -0
  6. data/dist/IceRuby/Operation.cpp +665 -0
  7. data/dist/IceRuby/Properties.cpp +369 -0
  8. data/dist/IceRuby/Types.cpp +3336 -0
  9. data/dist/IceRuby/Types.h +604 -0
  10. data/dist/IceRuby/ValueFactoryManager.cpp +445 -0
  11. data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +74 -0
  12. data/dist/ice/cpp/include/Ice/Initialize.h +957 -0
  13. data/dist/ice/cpp/include/Ice/MetricsObserverI.h +669 -0
  14. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +868 -0
  15. data/dist/ice/cpp/include/Ice/Proxy.h +5171 -0
  16. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +90 -0
  17. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +1889 -0
  18. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +1197 -0
  19. data/dist/ice/cpp/include/IceUtil/Cond.h +317 -0
  20. data/dist/ice/cpp/include/IceUtil/Config.h +392 -0
  21. data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +96 -0
  22. data/dist/ice/cpp/include/IceUtil/InputUtil.h +42 -0
  23. data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +37 -0
  24. data/dist/ice/cpp/include/IceUtil/Timer.h +153 -0
  25. data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +475 -0
  26. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +1430 -0
  27. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +147 -0
  28. data/dist/ice/cpp/include/generated/Glacier2/Router.h +3260 -0
  29. data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +125 -0
  30. data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +223 -0
  31. data/dist/ice/cpp/include/generated/Glacier2/Session.h +5894 -0
  32. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +170 -0
  33. data/dist/ice/cpp/include/generated/Ice/Communicator.h +1162 -0
  34. data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +101 -0
  35. data/dist/ice/cpp/include/generated/Ice/Connection.h +1703 -0
  36. data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +119 -0
  37. data/dist/ice/cpp/include/generated/Ice/Current.h +322 -0
  38. data/dist/ice/cpp/include/generated/Ice/Endpoint.h +979 -0
  39. data/dist/ice/cpp/include/generated/Ice/EndpointF.h +166 -0
  40. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +118 -0
  41. data/dist/ice/cpp/include/generated/Ice/FacetMap.h +80 -0
  42. data/dist/ice/cpp/include/generated/Ice/Identity.h +264 -0
  43. data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +284 -0
  44. data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +101 -0
  45. data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +1203 -0
  46. data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +128 -0
  47. data/dist/ice/cpp/include/generated/Ice/LocalException.h +7437 -0
  48. data/dist/ice/cpp/include/generated/Ice/Locator.h +3898 -0
  49. data/dist/ice/cpp/include/generated/Ice/LocatorF.h +147 -0
  50. data/dist/ice/cpp/include/generated/Ice/Logger.h +237 -0
  51. data/dist/ice/cpp/include/generated/Ice/LoggerF.h +101 -0
  52. data/dist/ice/cpp/include/generated/Ice/Metrics.h +4769 -0
  53. data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +1181 -0
  54. data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +101 -0
  55. data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +203 -0
  56. data/dist/ice/cpp/include/generated/Ice/Plugin.h +318 -0
  57. data/dist/ice/cpp/include/generated/Ice/PluginF.h +110 -0
  58. data/dist/ice/cpp/include/generated/Ice/Process.h +977 -0
  59. data/dist/ice/cpp/include/generated/Ice/ProcessF.h +125 -0
  60. data/dist/ice/cpp/include/generated/Ice/Properties.h +452 -0
  61. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +1366 -0
  62. data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +134 -0
  63. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +2707 -0
  64. data/dist/ice/cpp/include/generated/Ice/Router.h +1850 -0
  65. data/dist/ice/cpp/include/generated/Ice/RouterF.h +125 -0
  66. data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +305 -0
  67. data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +101 -0
  68. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +84 -0
  69. data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +330 -0
  70. data/dist/ice/cpp/include/generated/Ice/Version.h +357 -0
  71. data/dist/ice/cpp/include/generated/IceBox/IceBox.h +3269 -0
  72. data/dist/ice/cpp/include/generated/IceGrid/Admin.h +33773 -0
  73. data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +5254 -0
  74. data/dist/ice/cpp/include/generated/IceGrid/Exception.h +2834 -0
  75. data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +824 -0
  76. data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +635 -0
  77. data/dist/ice/cpp/include/generated/IceGrid/Registry.h +5089 -0
  78. data/dist/ice/cpp/include/generated/IceGrid/Session.h +2240 -0
  79. data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +800 -0
  80. data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +325 -0
  81. data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +2891 -0
  82. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +228 -0
  83. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +101 -0
  84. data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +186 -0
  85. data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +6627 -0
  86. data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +665 -0
  87. data/dist/ice/cpp/src/Ice/Application.cpp +661 -0
  88. data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +171 -0
  89. data/dist/ice/cpp/src/Ice/DLLMain.cpp +50 -0
  90. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +189 -0
  91. data/dist/ice/cpp/src/Ice/EndpointI.cpp +98 -0
  92. data/dist/ice/cpp/src/Ice/InputStream.cpp +2741 -0
  93. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +694 -0
  94. data/dist/ice/cpp/src/Ice/Network.cpp +2249 -0
  95. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1530 -0
  96. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1322 -0
  97. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +503 -0
  98. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +1428 -0
  99. data/dist/ice/cpp/src/Ice/PropertyNames.h +78 -0
  100. data/dist/ice/cpp/src/Ice/Proxy.cpp +1604 -0
  101. data/dist/ice/cpp/src/Ice/Selector.cpp +1535 -0
  102. data/dist/ice/cpp/src/Ice/Service.cpp +1883 -0
  103. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1292 -0
  104. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +49 -0
  105. data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +79 -0
  106. data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +61 -0
  107. data/dist/ice/cpp/src/Ice/generated/Connection.cpp +155 -0
  108. data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +61 -0
  109. data/dist/ice/cpp/src/Ice/generated/Current.cpp +62 -0
  110. data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +147 -0
  111. data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +61 -0
  112. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +51 -0
  113. data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +49 -0
  114. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +57 -0
  115. data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +75 -0
  116. data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +61 -0
  117. data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +188 -0
  118. data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +66 -0
  119. data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +3262 -0
  120. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +2042 -0
  121. data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +63 -0
  122. data/dist/ice/cpp/src/Ice/generated/Logger.cpp +73 -0
  123. data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +61 -0
  124. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +2352 -0
  125. data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +79 -0
  126. data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +61 -0
  127. data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +75 -0
  128. data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +87 -0
  129. data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +61 -0
  130. data/dist/ice/cpp/src/Ice/generated/Process.cpp +471 -0
  131. data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +63 -0
  132. data/dist/ice/cpp/src/Ice/generated/Properties.cpp +78 -0
  133. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +603 -0
  134. data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +63 -0
  135. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +1171 -0
  136. data/dist/ice/cpp/src/Ice/generated/Router.cpp +977 -0
  137. data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +63 -0
  138. data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +75 -0
  139. data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +61 -0
  140. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +49 -0
  141. data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +83 -0
  142. data/dist/ice/cpp/src/Ice/generated/Version.cpp +57 -0
  143. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +154 -0
  144. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +49 -0
  145. data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +146 -0
  146. data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +52 -0
  147. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +477 -0
  148. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +156 -0
  149. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +570 -0
  150. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +93 -0
  151. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +1889 -0
  152. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +915 -0
  153. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +1197 -0
  154. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +730 -0
  155. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +1092 -0
  156. data/dist/ice/cpp/src/IceSSL/PluginI.cpp +246 -0
  157. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +719 -0
  158. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +868 -0
  159. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +75 -0
  160. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +61 -0
  161. data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +75 -0
  162. data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +690 -0
  163. data/dist/ice/cpp/src/Slice/JavaUtil.cpp +5183 -0
  164. data/dist/ice/cpp/src/slice2rb/Main.cpp +35 -0
  165. data/dist/ice/mcpp/directive.c +1407 -0
  166. data/dist/ice/mcpp/internal.H +530 -0
  167. data/dist/ice/mcpp/mcpp_main.c +792 -0
  168. data/dist/ice/mcpp/support.c +1985 -0
  169. data/dist/ice/mcpp/system.c +2741 -0
  170. data/dist/ice/slice/Ice/Connection.ice +516 -0
  171. data/dist/ice/slice/Ice/Locator.ice +239 -0
  172. data/dist/ice/slice/Ice/Metrics.ice +436 -0
  173. data/dist/ice/slice/Ice/ObjectAdapter.ice +710 -0
  174. data/dist/ice/slice/Ice/Router.ice +103 -0
  175. data/dist/ice/slice/IceGrid/PluginFacade.ice +329 -0
  176. data/dist/ice/slice/IceStorm/IceStorm.ice +414 -0
  177. data/dist/lib/Glacier2/Metrics.rb +56 -0
  178. data/dist/lib/Glacier2/PermissionsVerifier.rb +93 -0
  179. data/dist/lib/Glacier2/PermissionsVerifierF.rb +30 -0
  180. data/dist/lib/Glacier2/Router.rb +95 -0
  181. data/dist/lib/Glacier2/RouterF.rb +25 -0
  182. data/dist/lib/Glacier2/SSLInfo.rb +72 -0
  183. data/dist/lib/Glacier2/Session.rb +247 -0
  184. data/dist/lib/Ice/BuiltinSequences.rb +60 -0
  185. data/dist/lib/Ice/Communicator.rb +87 -0
  186. data/dist/lib/Ice/CommunicatorF.rb +24 -0
  187. data/dist/lib/Ice/Connection.rb +413 -0
  188. data/dist/lib/Ice/ConnectionF.rb +32 -0
  189. data/dist/lib/Ice/Current.rb +141 -0
  190. data/dist/lib/Ice/Endpoint.rb +187 -0
  191. data/dist/lib/Ice/EndpointF.rb +48 -0
  192. data/dist/lib/Ice/EndpointTypes.rb +69 -0
  193. data/dist/lib/Ice/FacetMap.rb +24 -0
  194. data/dist/lib/Ice/Identity.rb +63 -0
  195. data/dist/lib/Ice/ImplicitContext.rb +26 -0
  196. data/dist/lib/Ice/ImplicitContextF.rb +24 -0
  197. data/dist/lib/Ice/Instrumentation.rb +169 -0
  198. data/dist/lib/Ice/InstrumentationF.rb +31 -0
  199. data/dist/lib/Ice/LocalException.rb +1031 -0
  200. data/dist/lib/Ice/Locator.rb +196 -0
  201. data/dist/lib/Ice/LocatorF.rb +30 -0
  202. data/dist/lib/Ice/Logger.rb +24 -0
  203. data/dist/lib/Ice/LoggerF.rb +24 -0
  204. data/dist/lib/Ice/Metrics.rb +337 -0
  205. data/dist/lib/Ice/ObjectAdapter.rb +29 -0
  206. data/dist/lib/Ice/ObjectAdapterF.rb +24 -0
  207. data/dist/lib/Ice/ObjectFactory.rb +24 -0
  208. data/dist/lib/Ice/Plugin.rb +30 -0
  209. data/dist/lib/Ice/PluginF.rb +28 -0
  210. data/dist/lib/Ice/Process.rb +53 -0
  211. data/dist/lib/Ice/ProcessF.rb +25 -0
  212. data/dist/lib/Ice/Properties.rb +25 -0
  213. data/dist/lib/Ice/PropertiesAdmin.rb +63 -0
  214. data/dist/lib/Ice/PropertiesF.rb +29 -0
  215. data/dist/lib/Ice/RemoteLogger.rb +207 -0
  216. data/dist/lib/Ice/Router.rb +87 -0
  217. data/dist/lib/Ice/RouterF.rb +25 -0
  218. data/dist/lib/Ice/ServantLocator.rb +26 -0
  219. data/dist/lib/Ice/ServantLocatorF.rb +24 -0
  220. data/dist/lib/Ice/SliceChecksumDict.rb +24 -0
  221. data/dist/lib/Ice/ValueFactory.rb +28 -0
  222. data/dist/lib/Ice/Version.rb +90 -0
  223. data/dist/lib/IceBox/IceBox.rb +164 -0
  224. data/dist/lib/IceGrid/Admin.rb +1196 -0
  225. data/dist/lib/IceGrid/Descriptor.rb +1034 -0
  226. data/dist/lib/IceGrid/Exception.rb +376 -0
  227. data/dist/lib/IceGrid/FileParser.rb +65 -0
  228. data/dist/lib/IceGrid/PluginFacade.rb +35 -0
  229. data/dist/lib/IceGrid/Registry.rb +209 -0
  230. data/dist/lib/IceGrid/Session.rb +71 -0
  231. data/dist/lib/IceGrid/UserAccountMapper.rb +61 -0
  232. data/dist/lib/IcePatch2/FileInfo.rb +115 -0
  233. data/dist/lib/IcePatch2/FileServer.rb +123 -0
  234. data/dist/lib/IceStorm/IceStorm.rb +332 -0
  235. data/dist/lib/IceStorm/Metrics.rb +73 -0
  236. data/extconf.rb +91 -0
  237. data/ice.gemspec +21 -16
  238. metadata +715 -711
  239. data/ICE_LICENSE +0 -48
  240. data/LICENSE +0 -340
  241. data/MCPP_LICENSE +0 -29
  242. data/ext/Connection.cpp +0 -532
  243. data/ext/Endpoint.cpp +0 -340
  244. data/ext/ImplicitContext.cpp +0 -144
  245. data/ext/Logger.cpp +0 -147
  246. data/ext/Operation.cpp +0 -661
  247. data/ext/Properties.cpp +0 -365
  248. data/ext/Types.cpp +0 -3325
  249. data/ext/Types.h +0 -595
  250. data/ext/ValueFactoryManager.cpp +0 -441
  251. data/ext/extconf.rb +0 -97
  252. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  253. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  254. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  255. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  256. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  257. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  258. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  259. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  260. data/ext/ice/cpp/include/IceUtil/Config.h +0 -392
  261. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  262. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  263. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  264. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -144
  265. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  266. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  267. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  268. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  269. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  270. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  271. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  272. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  273. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  274. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  275. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  276. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  277. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  278. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  279. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  280. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  281. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  282. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  283. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  284. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  285. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  286. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  287. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  288. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  289. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  290. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  291. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  292. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  293. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  294. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  295. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  296. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  297. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  298. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  299. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  300. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  301. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  302. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  303. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  304. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  305. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  306. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  307. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  308. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  309. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  310. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  311. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  312. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  313. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  314. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  315. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  316. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  317. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  318. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  319. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  320. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  321. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  322. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  323. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  324. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  325. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  326. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  327. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  328. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  329. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  330. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  331. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  332. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  333. data/ext/ice/cpp/src/Ice/Network.cpp +0 -2249
  334. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  335. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  336. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  337. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  338. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  339. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  340. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  341. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  342. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  343. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  344. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  345. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  346. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  347. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  348. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  349. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  350. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  351. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  352. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  353. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1525
  354. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  355. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  356. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  357. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1292
  358. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  359. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  360. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  361. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  362. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  363. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  364. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  365. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  366. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  367. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  368. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  369. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  370. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  371. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  372. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  373. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  374. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  375. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  376. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  377. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  378. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  379. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5176
  380. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  381. data/ext/ice/mcpp/LICENSE +0 -29
  382. data/ext/ice/mcpp/Makefile +0 -63
  383. data/ext/ice/mcpp/README.md +0 -32
  384. data/ext/ice/mcpp/directive.c +0 -1404
  385. data/ext/ice/mcpp/internal.H +0 -530
  386. data/ext/ice/mcpp/main.c +0 -792
  387. data/ext/ice/mcpp/mcpp.gyp +0 -88
  388. data/ext/ice/mcpp/support.c +0 -1985
  389. data/ext/ice/mcpp/system.c +0 -2737
  390. data/lib/Glacier2/Metrics.rb +0 -56
  391. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  392. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  393. data/lib/Glacier2/Router.rb +0 -95
  394. data/lib/Glacier2/RouterF.rb +0 -25
  395. data/lib/Glacier2/SSLInfo.rb +0 -72
  396. data/lib/Glacier2/Session.rb +0 -247
  397. data/lib/Ice/BuiltinSequences.rb +0 -60
  398. data/lib/Ice/Communicator.rb +0 -87
  399. data/lib/Ice/CommunicatorF.rb +0 -24
  400. data/lib/Ice/Connection.rb +0 -413
  401. data/lib/Ice/ConnectionF.rb +0 -32
  402. data/lib/Ice/Current.rb +0 -141
  403. data/lib/Ice/Endpoint.rb +0 -187
  404. data/lib/Ice/EndpointF.rb +0 -48
  405. data/lib/Ice/EndpointTypes.rb +0 -69
  406. data/lib/Ice/FacetMap.rb +0 -24
  407. data/lib/Ice/Identity.rb +0 -63
  408. data/lib/Ice/ImplicitContext.rb +0 -26
  409. data/lib/Ice/ImplicitContextF.rb +0 -24
  410. data/lib/Ice/Instrumentation.rb +0 -169
  411. data/lib/Ice/InstrumentationF.rb +0 -31
  412. data/lib/Ice/LocalException.rb +0 -1031
  413. data/lib/Ice/Locator.rb +0 -196
  414. data/lib/Ice/LocatorF.rb +0 -30
  415. data/lib/Ice/Logger.rb +0 -24
  416. data/lib/Ice/LoggerF.rb +0 -24
  417. data/lib/Ice/Metrics.rb +0 -337
  418. data/lib/Ice/ObjectAdapter.rb +0 -29
  419. data/lib/Ice/ObjectAdapterF.rb +0 -24
  420. data/lib/Ice/ObjectFactory.rb +0 -24
  421. data/lib/Ice/Plugin.rb +0 -30
  422. data/lib/Ice/PluginF.rb +0 -28
  423. data/lib/Ice/Process.rb +0 -53
  424. data/lib/Ice/ProcessF.rb +0 -25
  425. data/lib/Ice/Properties.rb +0 -25
  426. data/lib/Ice/PropertiesAdmin.rb +0 -63
  427. data/lib/Ice/PropertiesF.rb +0 -29
  428. data/lib/Ice/RemoteLogger.rb +0 -207
  429. data/lib/Ice/Router.rb +0 -87
  430. data/lib/Ice/RouterF.rb +0 -25
  431. data/lib/Ice/ServantLocator.rb +0 -26
  432. data/lib/Ice/ServantLocatorF.rb +0 -24
  433. data/lib/Ice/SliceChecksumDict.rb +0 -24
  434. data/lib/Ice/ValueFactory.rb +0 -28
  435. data/lib/Ice/Version.rb +0 -90
  436. data/lib/IceBox/IceBox.rb +0 -164
  437. data/lib/IceGrid/Admin.rb +0 -1196
  438. data/lib/IceGrid/Descriptor.rb +0 -1034
  439. data/lib/IceGrid/Exception.rb +0 -376
  440. data/lib/IceGrid/FileParser.rb +0 -65
  441. data/lib/IceGrid/PluginFacade.rb +0 -35
  442. data/lib/IceGrid/Registry.rb +0 -209
  443. data/lib/IceGrid/Session.rb +0 -71
  444. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  445. data/lib/IcePatch2/FileInfo.rb +0 -115
  446. data/lib/IcePatch2/FileServer.rb +0 -123
  447. data/lib/IceStorm/IceStorm.rb +0 -332
  448. data/lib/IceStorm/Metrics.rb +0 -73
  449. data/slice/Ice/Connection.ice +0 -516
  450. data/slice/Ice/Locator.ice +0 -239
  451. data/slice/Ice/Metrics.ice +0 -436
  452. data/slice/Ice/ObjectAdapter.ice +0 -710
  453. data/slice/Ice/Router.ice +0 -103
  454. data/slice/IceBT/ConnectionInfo.ice +0 -59
  455. data/slice/IceBT/EndpointInfo.ice +0 -57
  456. data/slice/IceBT/Types.ice +0 -45
  457. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  458. data/slice/IceGrid/PluginFacade.ice +0 -329
  459. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  460. data/slice/IceIAP/EndpointInfo.ice +0 -68
  461. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  462. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  463. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  464. data/slice/IceSSL/EndpointInfo.ice +0 -45
  465. data/slice/IceStorm/IceStorm.ice +0 -414
  466. /data/{ext → dist/IceRuby}/Communicator.cpp +0 -0
  467. /data/{ext → dist/IceRuby}/Communicator.h +0 -0
  468. /data/{ext → dist/IceRuby}/Config.h +0 -0
  469. /data/{ext → dist/IceRuby}/Connection.h +0 -0
  470. /data/{ext → dist/IceRuby}/Endpoint.h +0 -0
  471. /data/{ext → dist/IceRuby}/ImplicitContext.h +0 -0
  472. /data/{ext → dist/IceRuby}/Init.cpp +0 -0
  473. /data/{ext → dist/IceRuby}/Logger.h +0 -0
  474. /data/{ext → dist/IceRuby}/Operation.h +0 -0
  475. /data/{ext → dist/IceRuby}/Properties.h +0 -0
  476. /data/{ext → dist/IceRuby}/Proxy.cpp +0 -0
  477. /data/{ext → dist/IceRuby}/Proxy.h +0 -0
  478. /data/{ext → dist/IceRuby}/Slice.cpp +0 -0
  479. /data/{ext → dist/IceRuby}/Slice.h +0 -0
  480. /data/{ext → dist/IceRuby}/Util.cpp +0 -0
  481. /data/{ext → dist/IceRuby}/Util.h +0 -0
  482. /data/{ext → dist/IceRuby}/ValueFactoryManager.h +0 -0
  483. /data/{ext → dist}/ice/cpp/include/Ice/Application.h +0 -0
  484. /data/{ext → dist}/ice/cpp/include/Ice/AsyncResult.h +0 -0
  485. /data/{ext → dist}/ice/cpp/include/Ice/AsyncResultF.h +0 -0
  486. /data/{ext → dist}/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -0
  487. /data/{ext → dist}/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -0
  488. /data/{ext → dist}/ice/cpp/include/Ice/Buffer.h +0 -0
  489. /data/{ext → dist}/ice/cpp/include/Ice/CommunicatorAsync.h +0 -0
  490. /data/{ext → dist}/ice/cpp/include/Ice/Comparable.h +0 -0
  491. /data/{ext → dist}/ice/cpp/include/Ice/Config.h +0 -0
  492. /data/{ext → dist}/ice/cpp/include/Ice/ConnectionAsync.h +0 -0
  493. /data/{ext → dist}/ice/cpp/include/Ice/ConnectionIF.h +0 -0
  494. /data/{ext → dist}/ice/cpp/include/Ice/ConsoleUtil.h +0 -0
  495. /data/{ext → dist}/ice/cpp/include/Ice/DefaultValueFactory.h +0 -0
  496. /data/{ext → dist}/ice/cpp/include/Ice/DispatchInterceptor.h +0 -0
  497. /data/{ext → dist}/ice/cpp/include/Ice/Dispatcher.h +0 -0
  498. /data/{ext → dist}/ice/cpp/include/Ice/DynamicLibrary.h +0 -0
  499. /data/{ext → dist}/ice/cpp/include/Ice/DynamicLibraryF.h +0 -0
  500. /data/{ext → dist}/ice/cpp/include/Ice/Exception.h +0 -0
  501. /data/{ext → dist}/ice/cpp/include/Ice/FactoryTable.h +0 -0
  502. /data/{ext → dist}/ice/cpp/include/Ice/FactoryTableInit.h +0 -0
  503. /data/{ext → dist}/ice/cpp/include/Ice/Format.h +0 -0
  504. /data/{ext → dist}/ice/cpp/include/Ice/Functional.h +0 -0
  505. /data/{ext → dist}/ice/cpp/include/Ice/GCObject.h +0 -0
  506. /data/{ext → dist}/ice/cpp/include/Ice/Handle.h +0 -0
  507. /data/{ext → dist}/ice/cpp/include/Ice/Ice.h +0 -0
  508. /data/{ext → dist}/ice/cpp/include/Ice/IconvStringConverter.h +0 -0
  509. /data/{ext → dist}/ice/cpp/include/Ice/Incoming.h +0 -0
  510. /data/{ext → dist}/ice/cpp/include/Ice/IncomingAsync.h +0 -0
  511. /data/{ext → dist}/ice/cpp/include/Ice/IncomingAsyncF.h +0 -0
  512. /data/{ext → dist}/ice/cpp/include/Ice/InputStream.h +0 -0
  513. /data/{ext → dist}/ice/cpp/include/Ice/InstanceF.h +0 -0
  514. /data/{ext → dist}/ice/cpp/include/Ice/InterfaceByValue.h +0 -0
  515. /data/{ext → dist}/ice/cpp/include/Ice/LocalObject.h +0 -0
  516. /data/{ext → dist}/ice/cpp/include/Ice/LocalObjectF.h +0 -0
  517. /data/{ext → dist}/ice/cpp/include/Ice/LoggerUtil.h +0 -0
  518. /data/{ext → dist}/ice/cpp/include/Ice/MetricsAdminI.h +0 -0
  519. /data/{ext → dist}/ice/cpp/include/Ice/MetricsFunctional.h +0 -0
  520. /data/{ext → dist}/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -0
  521. /data/{ext → dist}/ice/cpp/include/Ice/Object.h +0 -0
  522. /data/{ext → dist}/ice/cpp/include/Ice/ObjectF.h +0 -0
  523. /data/{ext → dist}/ice/cpp/include/Ice/ObserverHelper.h +0 -0
  524. /data/{ext → dist}/ice/cpp/include/Ice/Optional.h +0 -0
  525. /data/{ext → dist}/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -0
  526. /data/{ext → dist}/ice/cpp/include/Ice/OutputStream.h +0 -0
  527. /data/{ext → dist}/ice/cpp/include/Ice/Protocol.h +0 -0
  528. /data/{ext → dist}/ice/cpp/include/Ice/ProxyF.h +0 -0
  529. /data/{ext → dist}/ice/cpp/include/Ice/ProxyFactoryF.h +0 -0
  530. /data/{ext → dist}/ice/cpp/include/Ice/ProxyHandle.h +0 -0
  531. /data/{ext → dist}/ice/cpp/include/Ice/ReferenceF.h +0 -0
  532. /data/{ext → dist}/ice/cpp/include/Ice/RegisterPlugins.h +0 -0
  533. /data/{ext → dist}/ice/cpp/include/Ice/RequestHandlerF.h +0 -0
  534. /data/{ext → dist}/ice/cpp/include/Ice/ResponseHandlerF.h +0 -0
  535. /data/{ext → dist}/ice/cpp/include/Ice/SHA1.h +0 -0
  536. /data/{ext → dist}/ice/cpp/include/Ice/ServantManagerF.h +0 -0
  537. /data/{ext → dist}/ice/cpp/include/Ice/Service.h +0 -0
  538. /data/{ext → dist}/ice/cpp/include/Ice/SliceChecksums.h +0 -0
  539. /data/{ext → dist}/ice/cpp/include/Ice/SlicedData.h +0 -0
  540. /data/{ext → dist}/ice/cpp/include/Ice/SlicedDataF.h +0 -0
  541. /data/{ext → dist}/ice/cpp/include/Ice/StreamHelpers.h +0 -0
  542. /data/{ext → dist}/ice/cpp/include/Ice/StringConverter.h +0 -0
  543. /data/{ext → dist}/ice/cpp/include/Ice/ThreadPoolF.h +0 -0
  544. /data/{ext → dist}/ice/cpp/include/Ice/UUID.h +0 -0
  545. /data/{ext → dist}/ice/cpp/include/Ice/UniquePtr.h +0 -0
  546. /data/{ext → dist}/ice/cpp/include/Ice/UniqueRef.h +0 -0
  547. /data/{ext → dist}/ice/cpp/include/Ice/Value.h +0 -0
  548. /data/{ext → dist}/ice/cpp/include/Ice/ValueF.h +0 -0
  549. /data/{ext → dist}/ice/cpp/include/IceSSL/Config.h +0 -0
  550. /data/{ext → dist}/ice/cpp/include/IceSSL/IceSSL.h +0 -0
  551. /data/{ext → dist}/ice/cpp/include/IceSSL/OpenSSL.h +0 -0
  552. /data/{ext → dist}/ice/cpp/include/IceSSL/Plugin.h +0 -0
  553. /data/{ext → dist}/ice/cpp/include/IceSSL/SChannel.h +0 -0
  554. /data/{ext → dist}/ice/cpp/include/IceSSL/SecureTransport.h +0 -0
  555. /data/{ext → dist}/ice/cpp/include/IceUtil/Atomic.h +0 -0
  556. /data/{ext → dist}/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -0
  557. /data/{ext → dist}/ice/cpp/include/IceUtil/CountDownLatch.h +0 -0
  558. /data/{ext → dist}/ice/cpp/include/IceUtil/DisableWarnings.h +0 -0
  559. /data/{ext → dist}/ice/cpp/include/IceUtil/Exception.h +0 -0
  560. /data/{ext → dist}/ice/cpp/include/IceUtil/FileUtil.h +0 -0
  561. /data/{ext → dist}/ice/cpp/include/IceUtil/Functional.h +0 -0
  562. /data/{ext → dist}/ice/cpp/include/IceUtil/Handle.h +0 -0
  563. /data/{ext → dist}/ice/cpp/include/IceUtil/IceUtil.h +0 -0
  564. /data/{ext → dist}/ice/cpp/include/IceUtil/Iterator.h +0 -0
  565. /data/{ext → dist}/ice/cpp/include/IceUtil/Lock.h +0 -0
  566. /data/{ext → dist}/ice/cpp/include/IceUtil/Monitor.h +0 -0
  567. /data/{ext → dist}/ice/cpp/include/IceUtil/Mutex.h +0 -0
  568. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexProtocol.h +0 -0
  569. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -0
  570. /data/{ext → dist}/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -0
  571. /data/{ext → dist}/ice/cpp/include/IceUtil/Optional.h +0 -0
  572. /data/{ext → dist}/ice/cpp/include/IceUtil/Options.h +0 -0
  573. /data/{ext → dist}/ice/cpp/include/IceUtil/OutputUtil.h +0 -0
  574. /data/{ext → dist}/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -0
  575. /data/{ext → dist}/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -0
  576. /data/{ext → dist}/ice/cpp/include/IceUtil/Random.h +0 -0
  577. /data/{ext → dist}/ice/cpp/include/IceUtil/RecMutex.h +0 -0
  578. /data/{ext → dist}/ice/cpp/include/IceUtil/ScannerConfig.h +0 -0
  579. /data/{ext → dist}/ice/cpp/include/IceUtil/ScopedArray.h +0 -0
  580. /data/{ext → dist}/ice/cpp/include/IceUtil/Shared.h +0 -0
  581. /data/{ext → dist}/ice/cpp/include/IceUtil/StopWatch.h +0 -0
  582. /data/{ext → dist}/ice/cpp/include/IceUtil/StringConverter.h +0 -0
  583. /data/{ext → dist}/ice/cpp/include/IceUtil/StringUtil.h +0 -0
  584. /data/{ext → dist}/ice/cpp/include/IceUtil/Thread.h +0 -0
  585. /data/{ext → dist}/ice/cpp/include/IceUtil/ThreadException.h +0 -0
  586. /data/{ext → dist}/ice/cpp/include/IceUtil/Time.h +0 -0
  587. /data/{ext → dist}/ice/cpp/include/IceUtil/UUID.h +0 -0
  588. /data/{ext → dist}/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -0
  589. /data/{ext → dist}/ice/cpp/src/Ice/ACM.cpp +0 -0
  590. /data/{ext → dist}/ice/cpp/src/Ice/ACM.h +0 -0
  591. /data/{ext → dist}/ice/cpp/src/Ice/ACMF.h +0 -0
  592. /data/{ext → dist}/ice/cpp/src/Ice/Acceptor.cpp +0 -0
  593. /data/{ext → dist}/ice/cpp/src/Ice/Acceptor.h +0 -0
  594. /data/{ext → dist}/ice/cpp/src/Ice/AcceptorF.h +0 -0
  595. /data/{ext → dist}/ice/cpp/src/Ice/ArgVector.cpp +0 -0
  596. /data/{ext → dist}/ice/cpp/src/Ice/ArgVector.h +0 -0
  597. /data/{ext → dist}/ice/cpp/src/Ice/AsyncResult.cpp +0 -0
  598. /data/{ext → dist}/ice/cpp/src/Ice/Base64.cpp +0 -0
  599. /data/{ext → dist}/ice/cpp/src/Ice/Base64.h +0 -0
  600. /data/{ext → dist}/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -0
  601. /data/{ext → dist}/ice/cpp/src/Ice/BatchRequestQueue.h +0 -0
  602. /data/{ext → dist}/ice/cpp/src/Ice/Buffer.cpp +0 -0
  603. /data/{ext → dist}/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -0
  604. /data/{ext → dist}/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -0
  605. /data/{ext → dist}/ice/cpp/src/Ice/CommunicatorI.cpp +0 -0
  606. /data/{ext → dist}/ice/cpp/src/Ice/CommunicatorI.h +0 -0
  607. /data/{ext → dist}/ice/cpp/src/Ice/Cond.cpp +0 -0
  608. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -0
  609. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -0
  610. /data/{ext → dist}/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -0
  611. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -0
  612. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactory.h +0 -0
  613. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -0
  614. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionI.cpp +0 -0
  615. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionI.h +0 -0
  616. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -0
  617. /data/{ext → dist}/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -0
  618. /data/{ext → dist}/ice/cpp/src/Ice/Connector.cpp +0 -0
  619. /data/{ext → dist}/ice/cpp/src/Ice/Connector.h +0 -0
  620. /data/{ext → dist}/ice/cpp/src/Ice/ConnectorF.h +0 -0
  621. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -0
  622. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -0
  623. /data/{ext → dist}/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -0
  624. /data/{ext → dist}/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -0
  625. /data/{ext → dist}/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -0
  626. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactory.h +0 -0
  627. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryF.h +0 -0
  628. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -0
  629. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -0
  630. /data/{ext → dist}/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -0
  631. /data/{ext → dist}/ice/cpp/src/Ice/EndpointI.h +0 -0
  632. /data/{ext → dist}/ice/cpp/src/Ice/EndpointIF.h +0 -0
  633. /data/{ext → dist}/ice/cpp/src/Ice/EventHandler.cpp +0 -0
  634. /data/{ext → dist}/ice/cpp/src/Ice/EventHandler.h +0 -0
  635. /data/{ext → dist}/ice/cpp/src/Ice/EventHandlerF.h +0 -0
  636. /data/{ext → dist}/ice/cpp/src/Ice/Exception.cpp +0 -0
  637. /data/{ext → dist}/ice/cpp/src/Ice/FactoryTable.cpp +0 -0
  638. /data/{ext → dist}/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -0
  639. /data/{ext → dist}/ice/cpp/src/Ice/GCObject.cpp +0 -0
  640. /data/{ext → dist}/ice/cpp/src/Ice/HashUtil.h +0 -0
  641. /data/{ext → dist}/ice/cpp/src/Ice/HttpParser.cpp +0 -0
  642. /data/{ext → dist}/ice/cpp/src/Ice/HttpParser.h +0 -0
  643. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointI.cpp +0 -0
  644. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointI.h +0 -0
  645. /data/{ext → dist}/ice/cpp/src/Ice/IPEndpointIF.h +0 -0
  646. /data/{ext → dist}/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -0
  647. /data/{ext → dist}/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -0
  648. /data/{ext → dist}/ice/cpp/src/Ice/ImplicitContextI.h +0 -0
  649. /data/{ext → dist}/ice/cpp/src/Ice/Incoming.cpp +0 -0
  650. /data/{ext → dist}/ice/cpp/src/Ice/IncomingAsync.cpp +0 -0
  651. /data/{ext → dist}/ice/cpp/src/Ice/IncomingRequest.h +0 -0
  652. /data/{ext → dist}/ice/cpp/src/Ice/Initialize.cpp +0 -0
  653. /data/{ext → dist}/ice/cpp/src/Ice/Instance.cpp +0 -0
  654. /data/{ext → dist}/ice/cpp/src/Ice/Instance.h +0 -0
  655. /data/{ext → dist}/ice/cpp/src/Ice/InstrumentationI.cpp +0 -0
  656. /data/{ext → dist}/ice/cpp/src/Ice/InstrumentationI.h +0 -0
  657. /data/{ext → dist}/ice/cpp/src/Ice/LocalObject.cpp +0 -0
  658. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfo.cpp +0 -0
  659. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfo.h +0 -0
  660. /data/{ext → dist}/ice/cpp/src/Ice/LocatorInfoF.h +0 -0
  661. /data/{ext → dist}/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -0
  662. /data/{ext → dist}/ice/cpp/src/Ice/LoggerAdminI.h +0 -0
  663. /data/{ext → dist}/ice/cpp/src/Ice/LoggerI.cpp +0 -0
  664. /data/{ext → dist}/ice/cpp/src/Ice/LoggerI.h +0 -0
  665. /data/{ext → dist}/ice/cpp/src/Ice/LoggerUtil.cpp +0 -0
  666. /data/{ext → dist}/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -0
  667. /data/{ext → dist}/ice/cpp/src/Ice/Network.h +0 -0
  668. /data/{ext → dist}/ice/cpp/src/Ice/NetworkF.h +0 -0
  669. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxy.cpp +0 -0
  670. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxy.h +0 -0
  671. /data/{ext → dist}/ice/cpp/src/Ice/NetworkProxyF.h +0 -0
  672. /data/{ext → dist}/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -0
  673. /data/{ext → dist}/ice/cpp/src/Ice/OSLogLoggerI.h +0 -0
  674. /data/{ext → dist}/ice/cpp/src/Ice/Object.cpp +0 -0
  675. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -0
  676. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -0
  677. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -0
  678. /data/{ext → dist}/ice/cpp/src/Ice/ObjectAdapterI.h +0 -0
  679. /data/{ext → dist}/ice/cpp/src/Ice/ObserverHelper.cpp +0 -0
  680. /data/{ext → dist}/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -0
  681. /data/{ext → dist}/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -0
  682. /data/{ext → dist}/ice/cpp/src/Ice/OutputStream.cpp +0 -0
  683. /data/{ext → dist}/ice/cpp/src/Ice/PluginManagerI.h +0 -0
  684. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -0
  685. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesAdminI.h +0 -0
  686. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesI.cpp +0 -0
  687. /data/{ext → dist}/ice/cpp/src/Ice/PropertiesI.h +0 -0
  688. /data/{ext → dist}/ice/cpp/src/Ice/Protocol.cpp +0 -0
  689. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -0
  690. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstance.h +0 -0
  691. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -0
  692. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -0
  693. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -0
  694. /data/{ext → dist}/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -0
  695. /data/{ext → dist}/ice/cpp/src/Ice/ProxyFactory.cpp +0 -0
  696. /data/{ext → dist}/ice/cpp/src/Ice/ProxyFactory.h +0 -0
  697. /data/{ext → dist}/ice/cpp/src/Ice/Reference.cpp +0 -0
  698. /data/{ext → dist}/ice/cpp/src/Ice/Reference.h +0 -0
  699. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -0
  700. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactory.h +0 -0
  701. /data/{ext → dist}/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -0
  702. /data/{ext → dist}/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -0
  703. /data/{ext → dist}/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -0
  704. /data/{ext → dist}/ice/cpp/src/Ice/ReplyStatus.h +0 -0
  705. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandler.cpp +0 -0
  706. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandler.h +0 -0
  707. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -0
  708. /data/{ext → dist}/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -0
  709. /data/{ext → dist}/ice/cpp/src/Ice/ResponseHandler.cpp +0 -0
  710. /data/{ext → dist}/ice/cpp/src/Ice/ResponseHandler.h +0 -0
  711. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueue.cpp +0 -0
  712. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueue.h +0 -0
  713. /data/{ext → dist}/ice/cpp/src/Ice/RetryQueueF.h +0 -0
  714. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfo.cpp +0 -0
  715. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfo.h +0 -0
  716. /data/{ext → dist}/ice/cpp/src/Ice/RouterInfoF.h +0 -0
  717. /data/{ext → dist}/ice/cpp/src/Ice/SHA1.cpp +0 -0
  718. /data/{ext → dist}/ice/cpp/src/Ice/Selector.h +0 -0
  719. /data/{ext → dist}/ice/cpp/src/Ice/ServantManager.cpp +0 -0
  720. /data/{ext → dist}/ice/cpp/src/Ice/ServantManager.h +0 -0
  721. /data/{ext → dist}/ice/cpp/src/Ice/SharedContext.h +0 -0
  722. /data/{ext → dist}/ice/cpp/src/Ice/SliceChecksums.cpp +0 -0
  723. /data/{ext → dist}/ice/cpp/src/Ice/SlicedData.cpp +0 -0
  724. /data/{ext → dist}/ice/cpp/src/Ice/StreamSocket.cpp +0 -0
  725. /data/{ext → dist}/ice/cpp/src/Ice/StreamSocket.h +0 -0
  726. /data/{ext → dist}/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -0
  727. /data/{ext → dist}/ice/cpp/src/Ice/StringUtil.h +0 -0
  728. /data/{ext → dist}/ice/cpp/src/Ice/SysLoggerI.cpp +0 -0
  729. /data/{ext → dist}/ice/cpp/src/Ice/SysLoggerI.h +0 -0
  730. /data/{ext → dist}/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -0
  731. /data/{ext → dist}/ice/cpp/src/Ice/SystemdJournalI.h +0 -0
  732. /data/{ext → dist}/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -0
  733. /data/{ext → dist}/ice/cpp/src/Ice/TcpAcceptor.h +0 -0
  734. /data/{ext → dist}/ice/cpp/src/Ice/TcpConnector.cpp +0 -0
  735. /data/{ext → dist}/ice/cpp/src/Ice/TcpConnector.h +0 -0
  736. /data/{ext → dist}/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -0
  737. /data/{ext → dist}/ice/cpp/src/Ice/TcpEndpointI.h +0 -0
  738. /data/{ext → dist}/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -0
  739. /data/{ext → dist}/ice/cpp/src/Ice/TcpTransceiver.h +0 -0
  740. /data/{ext → dist}/ice/cpp/src/Ice/Thread.cpp +0 -0
  741. /data/{ext → dist}/ice/cpp/src/Ice/ThreadPool.h +0 -0
  742. /data/{ext → dist}/ice/cpp/src/Ice/Timer.cpp +0 -0
  743. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevels.cpp +0 -0
  744. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevels.h +0 -0
  745. /data/{ext → dist}/ice/cpp/src/Ice/TraceLevelsF.h +0 -0
  746. /data/{ext → dist}/ice/cpp/src/Ice/TraceUtil.cpp +0 -0
  747. /data/{ext → dist}/ice/cpp/src/Ice/TraceUtil.h +0 -0
  748. /data/{ext → dist}/ice/cpp/src/Ice/Transceiver.cpp +0 -0
  749. /data/{ext → dist}/ice/cpp/src/Ice/Transceiver.h +0 -0
  750. /data/{ext → dist}/ice/cpp/src/Ice/TransceiverF.h +0 -0
  751. /data/{ext → dist}/ice/cpp/src/Ice/UdpConnector.cpp +0 -0
  752. /data/{ext → dist}/ice/cpp/src/Ice/UdpConnector.h +0 -0
  753. /data/{ext → dist}/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -0
  754. /data/{ext → dist}/ice/cpp/src/Ice/UdpEndpointI.h +0 -0
  755. /data/{ext → dist}/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -0
  756. /data/{ext → dist}/ice/cpp/src/Ice/UdpTransceiver.h +0 -0
  757. /data/{ext → dist}/ice/cpp/src/Ice/Value.cpp +0 -0
  758. /data/{ext → dist}/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -0
  759. /data/{ext → dist}/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -0
  760. /data/{ext → dist}/ice/cpp/src/Ice/VirtualShared.h +0 -0
  761. /data/{ext → dist}/ice/cpp/src/Ice/WSAcceptor.cpp +0 -0
  762. /data/{ext → dist}/ice/cpp/src/Ice/WSAcceptor.h +0 -0
  763. /data/{ext → dist}/ice/cpp/src/Ice/WSConnector.cpp +0 -0
  764. /data/{ext → dist}/ice/cpp/src/Ice/WSConnector.h +0 -0
  765. /data/{ext → dist}/ice/cpp/src/Ice/WSEndpoint.cpp +0 -0
  766. /data/{ext → dist}/ice/cpp/src/Ice/WSEndpoint.h +0 -0
  767. /data/{ext → dist}/ice/cpp/src/Ice/WSTransceiver.cpp +0 -0
  768. /data/{ext → dist}/ice/cpp/src/Ice/WSTransceiver.h +0 -0
  769. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -0
  770. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LocatorI.h +0 -0
  771. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -0
  772. /data/{ext → dist}/ice/cpp/src/IceDiscovery/LookupI.h +0 -0
  773. /data/{ext → dist}/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -0
  774. /data/{ext → dist}/ice/cpp/src/IceDiscovery/PluginI.h +0 -0
  775. /data/{ext → dist}/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -0
  776. /data/{ext → dist}/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -0
  777. /data/{ext → dist}/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -0
  778. /data/{ext → dist}/ice/cpp/src/IceSSL/AcceptorI.h +0 -0
  779. /data/{ext → dist}/ice/cpp/src/IceSSL/CertificateI.cpp +0 -0
  780. /data/{ext → dist}/ice/cpp/src/IceSSL/CertificateI.h +0 -0
  781. /data/{ext → dist}/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -0
  782. /data/{ext → dist}/ice/cpp/src/IceSSL/ConnectorI.h +0 -0
  783. /data/{ext → dist}/ice/cpp/src/IceSSL/EndpointI.cpp +0 -0
  784. /data/{ext → dist}/ice/cpp/src/IceSSL/EndpointI.h +0 -0
  785. /data/{ext → dist}/ice/cpp/src/IceSSL/Instance.cpp +0 -0
  786. /data/{ext → dist}/ice/cpp/src/IceSSL/Instance.h +0 -0
  787. /data/{ext → dist}/ice/cpp/src/IceSSL/InstanceF.h +0 -0
  788. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -0
  789. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -0
  790. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -0
  791. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -0
  792. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -0
  793. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -0
  794. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -0
  795. /data/{ext → dist}/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -0
  796. /data/{ext → dist}/ice/cpp/src/IceSSL/PluginI.h +0 -0
  797. /data/{ext → dist}/ice/cpp/src/IceSSL/RFC2253.cpp +0 -0
  798. /data/{ext → dist}/ice/cpp/src/IceSSL/RFC2253.h +0 -0
  799. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -0
  800. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -0
  801. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngine.h +0 -0
  802. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -0
  803. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -0
  804. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -0
  805. /data/{ext → dist}/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -0
  806. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -0
  807. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngine.h +0 -0
  808. /data/{ext → dist}/ice/cpp/src/IceSSL/SSLEngineF.h +0 -0
  809. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -0
  810. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -0
  811. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -0
  812. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -0
  813. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -0
  814. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -0
  815. /data/{ext → dist}/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -0
  816. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManager.cpp +0 -0
  817. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManager.h +0 -0
  818. /data/{ext → dist}/ice/cpp/src/IceSSL/TrustManagerF.h +0 -0
  819. /data/{ext → dist}/ice/cpp/src/IceSSL/Util.cpp +0 -0
  820. /data/{ext → dist}/ice/cpp/src/IceSSL/Util.h +0 -0
  821. /data/{ext → dist}/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -0
  822. /data/{ext → dist}/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -0
  823. /data/{ext → dist}/ice/cpp/src/IceUtil/ConvertUTF.h +0 -0
  824. /data/{ext → dist}/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -0
  825. /data/{ext → dist}/ice/cpp/src/IceUtil/FileUtil.cpp +0 -0
  826. /data/{ext → dist}/ice/cpp/src/IceUtil/InputUtil.cpp +0 -0
  827. /data/{ext → dist}/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -0
  828. /data/{ext → dist}/ice/cpp/src/IceUtil/Options.cpp +0 -0
  829. /data/{ext → dist}/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -0
  830. /data/{ext → dist}/ice/cpp/src/IceUtil/Random.cpp +0 -0
  831. /data/{ext → dist}/ice/cpp/src/IceUtil/RecMutex.cpp +0 -0
  832. /data/{ext → dist}/ice/cpp/src/IceUtil/Shared.cpp +0 -0
  833. /data/{ext → dist}/ice/cpp/src/IceUtil/StringUtil.cpp +0 -0
  834. /data/{ext → dist}/ice/cpp/src/IceUtil/ThreadException.cpp +0 -0
  835. /data/{ext → dist}/ice/cpp/src/IceUtil/Time.cpp +0 -0
  836. /data/{ext → dist}/ice/cpp/src/IceUtil/UUID.cpp +0 -0
  837. /data/{ext → dist}/ice/cpp/src/IceUtil/Unicode.cpp +0 -0
  838. /data/{ext → dist}/ice/cpp/src/IceUtil/Unicode.h +0 -0
  839. /data/{ext → dist}/ice/cpp/src/IceUtil/UtilException.cpp +0 -0
  840. /data/{ext → dist}/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -0
  841. /data/{ext → dist}/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -0
  842. /data/{ext → dist}/ice/cpp/src/Slice/Checksum.cpp +0 -0
  843. /data/{ext → dist}/ice/cpp/src/Slice/Checksum.h +0 -0
  844. /data/{ext → dist}/ice/cpp/src/Slice/FileTracker.cpp +0 -0
  845. /data/{ext → dist}/ice/cpp/src/Slice/FileTracker.h +0 -0
  846. /data/{ext → dist}/ice/cpp/src/Slice/Grammar.cpp +0 -0
  847. /data/{ext → dist}/ice/cpp/src/Slice/Grammar.h +0 -0
  848. /data/{ext → dist}/ice/cpp/src/Slice/GrammarUtil.h +0 -0
  849. /data/{ext → dist}/ice/cpp/src/Slice/JavaUtil.h +0 -0
  850. /data/{ext → dist}/ice/cpp/src/Slice/MD5.cpp +0 -0
  851. /data/{ext → dist}/ice/cpp/src/Slice/MD5.h +0 -0
  852. /data/{ext → dist}/ice/cpp/src/Slice/MD5I.cpp +0 -0
  853. /data/{ext → dist}/ice/cpp/src/Slice/MD5I.h +0 -0
  854. /data/{ext → dist}/ice/cpp/src/Slice/PHPUtil.cpp +0 -0
  855. /data/{ext → dist}/ice/cpp/src/Slice/PHPUtil.h +0 -0
  856. /data/{ext → dist}/ice/cpp/src/Slice/Parser.cpp +0 -0
  857. /data/{ext → dist}/ice/cpp/src/Slice/Parser.h +0 -0
  858. /data/{ext → dist}/ice/cpp/src/Slice/Preprocessor.cpp +0 -0
  859. /data/{ext → dist}/ice/cpp/src/Slice/Preprocessor.h +0 -0
  860. /data/{ext → dist}/ice/cpp/src/Slice/Python.cpp +0 -0
  861. /data/{ext → dist}/ice/cpp/src/Slice/PythonUtil.cpp +0 -0
  862. /data/{ext → dist}/ice/cpp/src/Slice/PythonUtil.h +0 -0
  863. /data/{ext → dist}/ice/cpp/src/Slice/Ruby.cpp +0 -0
  864. /data/{ext → dist}/ice/cpp/src/Slice/RubyUtil.cpp +0 -0
  865. /data/{ext → dist}/ice/cpp/src/Slice/RubyUtil.h +0 -0
  866. /data/{ext → dist}/ice/cpp/src/Slice/Scanner.cpp +0 -0
  867. /data/{ext → dist}/ice/cpp/src/Slice/SliceUtil.cpp +0 -0
  868. /data/{ext → dist}/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -0
  869. /data/{ext → dist}/ice/cpp/src/Slice/Util.h +0 -0
  870. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  871. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  872. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  873. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  874. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  875. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  876. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  877. /data/{ext → dist}/ice/mcpp/system.H +0 -0
  878. /data/{slice → dist/ice/slice}/Glacier2/Metrics.ice +0 -0
  879. /data/{slice → dist/ice/slice}/Glacier2/PermissionsVerifier.ice +0 -0
  880. /data/{slice → dist/ice/slice}/Glacier2/PermissionsVerifierF.ice +0 -0
  881. /data/{slice → dist/ice/slice}/Glacier2/Router.ice +0 -0
  882. /data/{slice → dist/ice/slice}/Glacier2/RouterF.ice +0 -0
  883. /data/{slice → dist/ice/slice}/Glacier2/SSLInfo.ice +0 -0
  884. /data/{slice → dist/ice/slice}/Glacier2/Session.ice +0 -0
  885. /data/{slice → dist/ice/slice}/Ice/BuiltinSequences.ice +0 -0
  886. /data/{slice → dist/ice/slice}/Ice/Communicator.ice +0 -0
  887. /data/{slice → dist/ice/slice}/Ice/CommunicatorF.ice +0 -0
  888. /data/{slice → dist/ice/slice}/Ice/ConnectionF.ice +0 -0
  889. /data/{slice → dist/ice/slice}/Ice/Current.ice +0 -0
  890. /data/{slice → dist/ice/slice}/Ice/Endpoint.ice +0 -0
  891. /data/{slice → dist/ice/slice}/Ice/EndpointF.ice +0 -0
  892. /data/{slice → dist/ice/slice}/Ice/EndpointTypes.ice +0 -0
  893. /data/{slice → dist/ice/slice}/Ice/FacetMap.ice +0 -0
  894. /data/{slice → dist/ice/slice}/Ice/Identity.ice +0 -0
  895. /data/{slice → dist/ice/slice}/Ice/ImplicitContext.ice +0 -0
  896. /data/{slice → dist/ice/slice}/Ice/ImplicitContextF.ice +0 -0
  897. /data/{slice → dist/ice/slice}/Ice/Instrumentation.ice +0 -0
  898. /data/{slice → dist/ice/slice}/Ice/InstrumentationF.ice +0 -0
  899. /data/{slice → dist/ice/slice}/Ice/LocalException.ice +0 -0
  900. /data/{slice → dist/ice/slice}/Ice/LocatorF.ice +0 -0
  901. /data/{slice → dist/ice/slice}/Ice/Logger.ice +0 -0
  902. /data/{slice → dist/ice/slice}/Ice/LoggerF.ice +0 -0
  903. /data/{slice → dist/ice/slice}/Ice/ObjectAdapterF.ice +0 -0
  904. /data/{slice → dist/ice/slice}/Ice/ObjectFactory.ice +0 -0
  905. /data/{slice → dist/ice/slice}/Ice/Plugin.ice +0 -0
  906. /data/{slice → dist/ice/slice}/Ice/PluginF.ice +0 -0
  907. /data/{slice → dist/ice/slice}/Ice/Process.ice +0 -0
  908. /data/{slice → dist/ice/slice}/Ice/ProcessF.ice +0 -0
  909. /data/{slice → dist/ice/slice}/Ice/Properties.ice +0 -0
  910. /data/{slice → dist/ice/slice}/Ice/PropertiesAdmin.ice +0 -0
  911. /data/{slice → dist/ice/slice}/Ice/PropertiesF.ice +0 -0
  912. /data/{slice → dist/ice/slice}/Ice/RemoteLogger.ice +0 -0
  913. /data/{slice → dist/ice/slice}/Ice/RouterF.ice +0 -0
  914. /data/{slice → dist/ice/slice}/Ice/ServantLocator.ice +0 -0
  915. /data/{slice → dist/ice/slice}/Ice/ServantLocatorF.ice +0 -0
  916. /data/{slice → dist/ice/slice}/Ice/SliceChecksumDict.ice +0 -0
  917. /data/{slice → dist/ice/slice}/Ice/ValueFactory.ice +0 -0
  918. /data/{slice → dist/ice/slice}/Ice/Version.ice +0 -0
  919. /data/{slice → dist/ice/slice}/IceBox/IceBox.ice +0 -0
  920. /data/{slice → dist/ice/slice}/IceGrid/Admin.ice +0 -0
  921. /data/{slice → dist/ice/slice}/IceGrid/Descriptor.ice +0 -0
  922. /data/{slice → dist/ice/slice}/IceGrid/Exception.ice +0 -0
  923. /data/{slice → dist/ice/slice}/IceGrid/FileParser.ice +0 -0
  924. /data/{slice → dist/ice/slice}/IceGrid/Registry.ice +0 -0
  925. /data/{slice → dist/ice/slice}/IceGrid/Session.ice +0 -0
  926. /data/{slice → dist/ice/slice}/IceGrid/UserAccountMapper.ice +0 -0
  927. /data/{slice → dist/ice/slice}/IcePatch2/FileInfo.ice +0 -0
  928. /data/{slice → dist/ice/slice}/IcePatch2/FileServer.ice +0 -0
  929. /data/{slice → dist/ice/slice}/IceStorm/Metrics.ice +0 -0
  930. /data/{lib → dist/lib}/Glacier2.rb +0 -0
  931. /data/{lib → dist/lib}/Ice.rb +0 -0
  932. /data/{lib → dist/lib}/IceBox.rb +0 -0
  933. /data/{lib → dist/lib}/IceGrid.rb +0 -0
  934. /data/{lib → dist/lib}/IcePatch2.rb +0 -0
  935. /data/{lib → dist/lib}/IceStorm.rb +0 -0
  936. /data/{bin → scripts}/slice2rb +0 -0
@@ -1,2737 +0,0 @@
1
- /*-
2
- * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
3
- * All rights reserved.
4
- *
5
- * Some parts of this code are derived from the public domain software
6
- * DECUS cpp (1984,1985) written by Martin Minow.
7
- *
8
- * Redistribution and use in source and binary forms, with or without
9
- * modification, are permitted provided that the following conditions
10
- * are met:
11
- * 1. Redistributions of source code must retain the above copyright
12
- * notice, this list of conditions and the following disclaimer.
13
- * 2. Redistributions in binary form must reproduce the above copyright
14
- * notice, this list of conditions and the following disclaimer in the
15
- * documentation and/or other materials provided with the distribution.
16
- *
17
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
18
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
21
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
- * SUCH DAMAGE.
28
- */
29
-
30
- /*
31
- * S Y S T E M . C
32
- * S y s t e m D e p e n d e n t R o u t i n e s
33
- *
34
- * Routines dependent on O.S., compiler or compiler-driver.
35
- * To port MCPP for the systems not yet ported, you must
36
- * 1. specify the constants in "configed.H" or "noconfig.H",
37
- * 2. append the system-dependent routines in this file.
38
- */
39
-
40
- #include "system.H"
41
- #include "internal.H"
42
-
43
- #if HOST_SYS_FAMILY == SYS_UNIX
44
- #include "unistd.h" /* For getcwd(), readlink() */
45
- #elif HOST_COMPILER == MSC || HOST_COMPILER == LCC
46
- #include "direct.h"
47
- #define getcwd( buf, size) _getcwd( buf, size)
48
- #elif HOST_COMPILER == BORLANDC
49
- #include "dir.h"
50
- #endif
51
-
52
- #include "sys/types.h"
53
- #include "sys/stat.h" /* For stat() */
54
- #if ! defined( S_ISREG)
55
- #define S_ISREG( mode) (mode & S_IFREG)
56
- #define S_ISDIR( mode) (mode & S_IFDIR)
57
- #endif
58
- #if HOST_COMPILER == MSC
59
- #define S_IFREG _S_IFREG
60
- #define S_IFDIR _S_IFDIR
61
- #define stat( path, stbuf) _stat( path, stbuf)
62
- #endif
63
-
64
- /* Function to compare path-list */
65
- #if FNAME_FOLD
66
- #if HOST_COMPILER == GNUC /* CYGWIN, MINGW, MAC */
67
- #include <strings.h> /* POSIX 1, 2001 */
68
- #define str_case_eq( str1, str2) (strcasecmp( str1, str2) == 0)
69
- #else /* MSC, BORLANDC, LCC */
70
- #if HOST_COMPILER == MSC
71
- #define stricmp( str1, str2) _stricmp( str1, str2)
72
- #endif
73
- #define str_case_eq( str1, str2) (stricmp( str1, str2) == 0)
74
- #endif
75
- #else /* ! FNAME_FOLD */
76
- #define str_case_eq( str1, str2) (strcmp( str1, str2) == 0)
77
- #endif
78
-
79
- /*
80
- * PATH_DELIM is defined for the O.S. which has single byte path-delimiter.
81
- * Note: '\\' or any other character identical to second byte of MBCHAR should
82
- * not be used for PATH_DELIM for convenience of path-list parsing.
83
- */
84
- #if SYS_FAMILY == SYS_UNIX || SYS_FAMILY == SYS_WIN || SYSTEM == SYS_UNKNOWN
85
- #define PATH_DELIM '/'
86
- #define SPECIAL_PATH_DELIM FALSE
87
- #else /* Any other path-delimiter, define PATH_DELIM by yourself */
88
- #define SPECIAL_PATH_DELIM TRUE /* Any path-delimiter other than '/' */
89
- #endif
90
-
91
- /*
92
- * OBJEXT is the suffix to denote "object" file.
93
- */
94
- #ifndef OBJEXT
95
- #if SYS_FAMILY == SYS_UNIX || HOST_COMPILER == GNUC
96
- #define OBJEXT "o"
97
- #elif SYS_FAMILY == SYS_WIN
98
- #define OBJEXT "obj"
99
- #elif 1
100
- /* Add here appropriate definitions for other systems. */
101
- #endif
102
- #endif
103
-
104
- static void version( void);
105
- /* Print version message */
106
- static void usage( int opt);
107
- /* Putout usage of MCPP */
108
- static void set_opt_list( char * optlist);
109
- /* Set list of legal option chars */
110
- static void def_a_macro( int opt, char * def);
111
- /* Do a -D option */
112
- static void chk_opts( int sflag, int trad);
113
- /* Check consistency of options */
114
- static void init_predefines( void);
115
- /* Set and unset predefined macros */
116
- static void init_std_defines( void);
117
- /* Predefine Standard macros */
118
- static void set_limit( void);
119
- /* Set minimum translation limits */
120
-
121
- static void put_info( FILEINFO * sharp_file);
122
- /* Print compiler-specific-inf */
123
- static char * set_files( int argc, char ** argv, char ** in_pp
124
- , char ** out_pp);
125
- /* Set input, output, diagnostic */
126
- static void set_sys_dirs( int set_cplus_dir);
127
- /* Set system-specific include dirs */
128
- static void set_env_dirs( void);
129
- /* Set user-defined include dirs */
130
- static void parse_env( const char * env);
131
- /* Parse environment variables */
132
- static void set_a_dir( const char * dirname);
133
- /* Append an include directory */
134
- static char * norm_dir( const char * dirname, int framework);
135
- /* Normalize include directory path */
136
- static char * norm_path( const char * dir, const char * fname, int inf
137
- , int hmap); /* Normalize pathname to compare */
138
- #if SYS_FAMILY == SYS_UNIX
139
- static void deref_syml( char * slbuf1, char * slbuf2, char * chk_start);
140
- /* Dereference symbolic linked directory and file */
141
- #endif
142
- static void def_macros( void);
143
- /* Define macros specified by -D */
144
- static void undef_macros( void);
145
- /* Undefine macros specified by -U */
146
- static char * md_init( const char * filename, char * output);
147
- /* Initialize makefile dependency */
148
- static char * md_quote( char * output);
149
- /* 'Quote' special characters */
150
- static int open_include( char * filename, int searchlocal, int next);
151
- /* Open the file to include */
152
- static int has_directory( const char * source, char * directory);
153
- /* Get directory part of fname */
154
- static int is_full_path( const char * path);
155
- /* The path is absolute path list ? */
156
- static int search_dir( char * filename, int searchlocal, int next);
157
- /* Search the include directories */
158
- static int open_file( const char ** dirp, const char * src_dir
159
- , const char * filename, int local, int include_opt, int sys_frame);
160
- /* Open a source file */
161
- static const char * set_fname( const char * filename);
162
- /* Remember the source filename */
163
- #if 0 /* This function is only for debugging use */
164
- static int chk_dirp( const char ** dirp);
165
- /* Check validity of dirp arg for open_file() */
166
- #endif
167
- static void cur_file( FILEINFO * file, FILEINFO * sharp_file, int marker);
168
- /* Output current source file name */
169
- #if SYS_FAMILY == SYS_WIN
170
- static char * bsl2sl( char * filename);
171
- /* Convert \ to / in path-list */
172
- #endif
173
- static int is_junk( void);
174
- /* The directive has trailing junk? */
175
- static void do_once( const char * fullname);
176
- /* Process #pragma once */
177
- static int included( const char * fullname);
178
- /* The file has been once included? */
179
- static void push_or_pop( int direction);
180
- /* Push or pop a macro definition */
181
- static void do_preprocessed( void);
182
- /* Process preprocessed file */
183
- static int do_debug( int set);
184
- /* #pragma MCPP debug, #debug */
185
- static void dump_path( void);
186
- /* Print include search path */
187
- static int mcpp_getopt( int argc, char * const * argv, const char * opts);
188
- /* getopt() to prevent linking of glibc getopt */
189
-
190
- /* for mcpp_getopt() */
191
- static int mcpp_optind = 1;
192
- static int mcpp_opterr = 1;
193
- static int mcpp_optopt;
194
- static char * mcpp_optarg;
195
-
196
- static int mb_changed = FALSE; /* Flag of -e option */
197
- static char cur_work_dir[ PATHMAX + 1]; /* Current working directory*/
198
-
199
- /*
200
- * incdir[] stores the -I directories (and the system-specific #include <...>
201
- * directories). This is set by set_a_dir(). A trailing PATH_DELIM is
202
- * appended if absent.
203
- */
204
- static const char ** incdir; /* Include directories */
205
- static const char ** incend; /* -> active end of incdir */
206
- static int max_inc; /* Number of incdir[] */
207
-
208
- typedef struct inc_list { /* List of directories or files */
209
- char *name; /* Filename or directory-name */
210
- size_t len; /* Length of 'name' */
211
- } INC_LIST;
212
-
213
- /*
214
- * fnamelist[] stores the souce file names opened by #include directive for
215
- * debugging information.
216
- */
217
- static INC_LIST * fnamelist; /* Source file names */
218
- static INC_LIST * fname_end; /* -> active end of fnamelist */
219
- static int max_fnamelist; /* Number of fnamelist[] */
220
-
221
- /* once_list[] stores the #pragma once file names. */
222
- static INC_LIST * once_list; /* Once opened file */
223
- static INC_LIST * once_end; /* -> active end of once_list */
224
- static int max_once; /* Number of once_list[] */
225
-
226
- #define INIT_NUM_INCLUDE 32 /* Initial number of incdir[] */
227
- #define INIT_NUM_FNAMELIST 256 /* Initial number of fnamelist[] */
228
- #define INIT_NUM_ONCE 64 /* Initial number of once_list[] */
229
-
230
- /*
231
- * 'search_rule' holds searching rule of #include "header.h" to search first
232
- * before searching user specified or system-specific include directories.
233
- * 'search_rule' is initialized to SEARCH_INIT. It can be changed by -I1, -I2
234
- * or -I3 option. -I1 specifies CURRENT, -I2 SOURCE and -I3 both.
235
- */
236
-
237
- static int search_rule = SEARCH_INIT; /* Rule to search include file */
238
-
239
- static int nflag = FALSE; /* Flag of -N (-undef) option */
240
- static long std_val = -1L; /* Value of __STDC_VERSION__ or __cplusplus */
241
-
242
- #define MAX_DEF 256
243
- #define MAX_UNDEF (MAX_DEF/4)
244
- static char * def_list[ MAX_DEF]; /* Macros to be defined */
245
- static char * undef_list[ MAX_UNDEF]; /* Macros to be undefined */
246
- static int def_cnt; /* Count of def_list */
247
- static int undef_cnt; /* Count of undef_list */
248
-
249
- /* Values of mkdep. */
250
- #define MD_MKDEP 1 /* Output source file dependency line */
251
- #define MD_SYSHEADER 2 /* Print also system-header names */
252
- #define MD_FILE 4 /* Output to the file named *.d */
253
- #define MD_PHONY 8 /* Print also phony targets for each header */
254
- #define MD_QUOTE 16 /* 'Quote' $ and space in target name */
255
-
256
- static FILE * mkdep_fp; /* For -Mx option */
257
- static char * mkdep_target;
258
- /* For -MT TARGET option and for GCC's queer environment variables. */
259
- static char * mkdep_mf; /* Argument of -MF option */
260
- static char * mkdep_md; /* Argument of -MD option */
261
- static char * mkdep_mq; /* Argument of -MQ option */
262
- static char * mkdep_mt; /* Argument of -MT option */
263
-
264
- /* sharp_filename is filename for #line line, used only in cur_file() */
265
- static char * sharp_filename = NULL;
266
- static char * argv0; /* argv[ 0] for usage() and version() */
267
- static int compat_mode;
268
- /* "Compatible" mode of recursive macro expansion */
269
-
270
- #if SYSTEM == SYS_CYGWIN
271
- static int no_cygwin = FALSE; /* -mno-cygwin */
272
-
273
- #endif
274
-
275
- #define NO_DIR FALSE
276
- #if NO_DIR
277
- /* Unofficial feature to strip directory part of include file */
278
- static int no_dir;
279
- #endif
280
-
281
- void init_system( void)
282
- /* Initialize static variables */
283
- {
284
- if (sharp_filename)
285
- free( sharp_filename);
286
- sharp_filename = NULL;
287
- incend = incdir = NULL;
288
- fnamelist = once_list = NULL;
289
- search_rule = SEARCH_INIT;
290
- mb_changed = nflag = compat_mode = FALSE;
291
- mkdep_fp = NULL;
292
- mkdep_target = mkdep_mf = mkdep_md = mkdep_mq = mkdep_mt = NULL;
293
- std_val = -1L;
294
- def_cnt = undef_cnt = 0;
295
- mcpp_optind = mcpp_opterr = 1;
296
- #if SYSTEM == SYS_CYGWIN
297
- no_cygwin = FALSE;
298
- #endif
299
- #if NO_DIR
300
- no_dir = FALSE;
301
- #endif
302
- }
303
-
304
-
305
- #define OPTLISTLEN 80
306
-
307
- void do_options(
308
- int argc,
309
- char ** argv,
310
- char ** in_pp, /* Input file name */
311
- char ** out_pp /* Output file name */
312
- )
313
- /*
314
- * Process command line arguments, called only at MCPP startup.
315
- */
316
- {
317
- char optlist[ OPTLISTLEN]; /* List of option letter*/
318
- int opt;
319
- int unset_sys_dirs;
320
- /* Unset system-specific and site-specific include directories ? */
321
- int set_cplus_dir; /* Set C++ include directory ? (for GCC)*/
322
- int show_path; /* Show include directory list */
323
- int sflag; /* -S option or similar */
324
- int trad; /* -traditional */
325
- int i;
326
-
327
- argv0 = argv[ 0];
328
- nflag = unset_sys_dirs = show_path = sflag = trad = FALSE;
329
- set_cplus_dir = TRUE;
330
-
331
- /* Get current directory for -I option and #pragma once */
332
- getcwd( cur_work_dir, PATHMAX);
333
- #if SYS_FAMILY == SYS_WIN
334
- bsl2sl( cur_work_dir);
335
- #endif
336
- sprintf( cur_work_dir + strlen( cur_work_dir), "%c%c", PATH_DELIM, EOS);
337
- /* Append trailing path-delimiter */
338
-
339
- set_opt_list( optlist);
340
-
341
- opt_search: ;
342
- while (mcpp_optind < argc
343
- && (opt = mcpp_getopt( argc, argv, optlist)) != EOF) {
344
-
345
- switch (opt) { /* Command line option character */
346
-
347
- case 'C': /* Keep comments */
348
- option_flags.c = TRUE;
349
- break;
350
-
351
- case 'D': /* Define symbol */
352
- if (def_cnt >= MAX_DEF) {
353
- mcpp_fputs( "Too many -D options.\n", ERR);
354
- longjmp( error_exit, -1);
355
- }
356
- def_list[ def_cnt++] = mcpp_optarg;
357
- break;
358
-
359
- case 'e':
360
- // We support this option, but it does nothing.
361
- break;
362
-
363
- case 'I': /* Include directory */
364
- if (str_eq( mcpp_optarg, "-")) { /* -I- */
365
- unset_sys_dirs = TRUE;
366
- /* Unset pre-specified include directories */
367
- } else if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg)
368
- && (i = *mcpp_optarg - '0') != 0
369
- && (i & ~(CURRENT | SOURCE)) == 0) {
370
- search_rule = i; /* -I1, -I2 or -I3 */
371
- } else { /* Not '-' nor a digit */
372
- set_a_dir( mcpp_optarg); /* User-defined dir */
373
- }
374
- break;
375
-
376
-
377
- case 'M': /* Output source file dependency line */
378
- if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* -M */
379
- mkdep |= MD_SYSHEADER;
380
- mcpp_optind--;
381
- } else {
382
- usage( opt);
383
- }
384
- mkdep |= MD_MKDEP;
385
- break;
386
-
387
- case 'U': /* Undefine macro */
388
- if (undef_cnt >= MAX_UNDEF) {
389
- mcpp_fputs( "Too many -U options.\n", ERR);
390
- longjmp( error_exit, -1);
391
- }
392
- undef_list[ undef_cnt++] = mcpp_optarg;
393
- break;
394
-
395
- default: /* What is this one? */
396
- usage( opt);
397
- break;
398
- } /* Switch on all options */
399
-
400
- } /* For all arguments */
401
-
402
- if (mcpp_optind < argc && set_files( argc, argv, in_pp, out_pp) != NULL)
403
- goto opt_search; /* More options after the filename */
404
-
405
- /* Check consistency of specified options, set some variables */
406
- chk_opts( sflag, trad);
407
-
408
- if (warn_level == -1) /* No -W option */
409
- warn_level = 1; /* Default warning level */
410
- else if (warn_level == 0xFF)
411
- warn_level = 0; /* -W0 has high precedence */
412
-
413
- set_env_dirs();
414
- if (! unset_sys_dirs)
415
- set_sys_dirs( set_cplus_dir);
416
-
417
- if (mkdep_mf) { /* -MF overrides -MD */
418
- mkdep_fp = mcpp_fopen( mkdep_mf, "w");
419
- } else if (mkdep_md) {
420
- mkdep_fp = mcpp_fopen( mkdep_md, "w");
421
- }
422
- if (mkdep_mq) /* -MQ overrides -MT */
423
- mkdep_target = mkdep_mq;
424
- else if (mkdep_mt)
425
- mkdep_target = mkdep_mt;
426
-
427
- /* Normalize the path-list */
428
- if (*in_pp && ! str_eq( *in_pp, "-")) {
429
- char * tmp = norm_path( null, *in_pp, FALSE, FALSE);
430
- if (tmp) /* The file exists */
431
- *in_pp = tmp;
432
- /* Else mcpp_main() will diagnose *in_pp and exit */
433
- }
434
- if (! (mcpp_debug & MACRO_CALL)) {
435
- if (show_path) {
436
- fp_debug = stderr;
437
- dump_path();
438
- fp_debug = stdout;
439
- }
440
- }
441
- }
442
-
443
- static void version( void)
444
- /*
445
- * Print version message.
446
- */
447
- {
448
- const char * mes[] = {
449
- /* Write messages here, for example, "MySomeTool with ". */
450
- "MCPP V.2.7.2 (2008/11)"
451
- , "https://github.com/zeroc-ice/mcpp"
452
- , "compiler-independent-build "
453
- , NULL
454
- };
455
-
456
- const char ** mpp = mes;
457
- while (*mpp)
458
- mcpp_fputs( *mpp++, ERR);
459
- }
460
-
461
- static void usage(
462
- int opt
463
- )
464
- /*
465
- * Print usage.
466
- */
467
- {
468
- const char * mes[] = {
469
-
470
- "Usage: ",
471
- "mcpp",
472
- " [-<opts> [-<opts>]] [<infile> [-<opts>] [<outfile>] [-<opts>]]\n",
473
- " <infile> defaults to stdin and <outfile> defaults to stdout.\n",
474
-
475
- "\nCommonly used options:\n",
476
-
477
- "-C Output also comments.\n",
478
- "-D <macro>[=<value>] Define <macro> as <value> (default:1).\n",
479
- "-D <macro(args)>[=<replace>] Define <macro(args)> as <replace>.\n",
480
- "-e <encoding> Change the default multi-byte character encoding to one of:\n",
481
- " euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.\n",
482
-
483
- "-I <directory> Add <directory> to the #include search list.\n",
484
-
485
- "-I- Unset system or site specific include directories.\n",
486
-
487
- "-M file\n",
488
- " Output source file dependency line for makefile.\n",
489
- "-U <macro> Undefine <macro>.\n",
490
-
491
- "\nFor further details see mcpp-manual.html.\n",
492
- NULL,
493
- };
494
-
495
- const char * illegopt = "Incorrect option -%c%s\n";
496
- const char * const * mpp = mes;
497
-
498
- if (opt != '?')
499
- mcpp_fprintf( ERR, illegopt, opt, mcpp_optarg ? mcpp_optarg : null);
500
- version();
501
- mes[ 1] = argv0;
502
- while (*mpp)
503
- mcpp_fputs( *mpp++, ERR);
504
- longjmp( error_exit, -1);
505
- }
506
-
507
- static void set_opt_list(
508
- char * optlist
509
- )
510
- /*
511
- * Set list of legal option characters.
512
- */
513
- {
514
- const char * list[] = {
515
-
516
- #if ! STD_LINE_PREFIX
517
- "b",
518
- #endif
519
-
520
- #if SYS_FAMILY == SYS_UNIX
521
- "m:",
522
- #endif
523
-
524
- "a",
525
-
526
- NULL
527
- };
528
-
529
- const char * const * lp = & list[ 0];
530
-
531
- strcpy( optlist, "e:CD:I:M:U:");
532
- /* Default options */
533
- while (*lp)
534
- strcat( optlist, *lp++);
535
- if (strlen( optlist) >= OPTLISTLEN)
536
- cfatal( "Bug: Too long option list", NULL, 0L, NULL); /* _F_ */
537
- }
538
-
539
- static void def_a_macro(
540
- int opt, /* 'D' */
541
- char * def /* Argument of -D option */
542
- )
543
- /*
544
- * Define a macro specified by -D option.
545
- * The macro maybe either object-like or function-like (with parameter).
546
- */
547
- {
548
- DEFBUF * defp;
549
- char * definition; /* Argument of -D option */
550
- char * cp;
551
- int i;
552
-
553
- definition = xmalloc( strlen( def) + 4);
554
- strcpy( definition, def);
555
- if ((cp = strchr( definition, '=')) != NULL) {
556
- *cp = ' '; /* Remove the '=' */
557
- cp = "\n"; /* Append <newline> */
558
- } else {
559
- cp = " 1\n"; /* With definition "1" */
560
- }
561
- strcat( definition, cp);
562
- cp = definition;
563
- while ((char_type[ *cp & UCHARMAX] & SPA) == 0)
564
- cp++;
565
- i = *cp;
566
- *cp = EOS;
567
- if ((defp = look_id( definition)) != NULL) /* Pre-defined */
568
- undefine( definition);
569
- *cp = i;
570
- /* Now, save the definition. */
571
- unget_string( definition, NULL);
572
- if (do_define( FALSE, 0) == NULL) /* Define a macro */
573
- usage( opt);
574
- *cp = EOS;
575
- if (str_eq( definition, "__STDC__")) {
576
- defp = look_id( definition);
577
- defp->nargs = DEF_NOARGS_STANDARD;
578
- /* Restore Standard-predefinedness */
579
- }
580
- free( definition);
581
- skip_nl(); /* Clear the appended <newline> */
582
- }
583
-
584
- static void chk_opts(
585
- int sflag, /* Flag of Standard or post-Standard mode */
586
- int trad /* -traditional (GCC only) */
587
- )
588
- /*
589
- * Check consistency between the specified options.
590
- * Set default value of some variables for each 'mcpp_mode'.
591
- */
592
- {
593
- int incompat = FALSE;
594
-
595
- if (trad)
596
- incompat = TRUE;
597
- if (! stdc_val)
598
- stdc_val = STDC;
599
-
600
- if (compat_mode)
601
- incompat = TRUE;
602
- if ((mcpp_debug & MACRO_CALL)
603
- && option_flags.c) {
604
- mcpp_fputs( "Disabled -K option.\n", ERR);
605
- mcpp_debug &= ~MACRO_CALL;
606
- /* -a and -C options do not co-exist with -K */
607
- }
608
- if (incompat) {
609
- mcpp_fputs( "Incompatible options are specified.\n", ERR);
610
- usage( '?');
611
- }
612
-
613
- expand_init( compat_mode);
614
- /* Set function pointer to macro expansion routine */
615
- }
616
-
617
- static void init_predefines( void)
618
- /*
619
- * Set or unset predefined macros.
620
- */
621
- {
622
- char tmp[ 16];
623
-
624
- stdc_ver = stdc_val ? STDC_VERSION : 0L;
625
-
626
- if (nflag) {
627
- un_predefine( TRUE);
628
- } else if (stdc_val) {
629
- un_predefine( FALSE); /* Undefine "unix" or so */
630
- }
631
- sprintf( tmp, "%ldL", stdc_ver);
632
- if (stdc_ver)
633
- look_and_install( "__STDC_VERSION__", DEF_NOARGS_STANDARD, null
634
- , tmp);
635
- #ifdef COMPILER_CPLUS
636
- if (! nflag) /* Undefine pre-defined macro for C++ */
637
- undefine( COMPILER_CPLUS);
638
- #endif
639
- set_limit();
640
- init_std_defines();
641
- }
642
-
643
- static void init_std_defines( void)
644
- /*
645
- * For STD and POST_STD modes.
646
- * The magic pre-defines are initialized with magic argument counts.
647
- * expand_macro() notices this and calls the appropriate routine.
648
- * DEF_NOARGS is one greater than the first "magic" definition.
649
- * 'DEF_NOARGS - n' are reserved for pre-defined macros.
650
- * __STDC_VERSION__ and __cplusplus are defined by chk_opts() and set_cplus().
651
- */
652
- {
653
- char tmp[ 16];
654
- char timestr[ 14];
655
- time_t tvec;
656
- char * tstring;
657
-
658
- look_and_install( "__LINE__", DEF_NOARGS_DYNAMIC - 1, null, "-1234567890");
659
- /* Room for 11 chars (10 for long and 1 for '-' in case of wrap round. */
660
- look_and_install( "__FILE__", DEF_NOARGS_DYNAMIC - 2, null, null);
661
- /* Should be stuffed */
662
-
663
- /* Define __DATE__, __TIME__ as present date and time. */
664
- time( &tvec);
665
- tstring = ctime( &tvec);
666
- sprintf( timestr, "\"%.3s %c%c %.4s\"",
667
- tstring + 4,
668
- *(tstring + 8) == '0' ? ' ' : *(tstring + 8),
669
- *(tstring + 9),
670
- tstring + 20);
671
- look_and_install( "__DATE__", DEF_NOARGS_DYNAMIC, null, timestr);
672
- sprintf( timestr, "\"%.8s\"", tstring + 11);
673
- look_and_install( "__TIME__", DEF_NOARGS_DYNAMIC, null, timestr);
674
-
675
- if (! look_id( "__STDC_HOSTED__")) {
676
- /*
677
- * Some compilers, e.g. GCC older than 3.3, define this macro by
678
- * -D option.
679
- */
680
- sprintf( tmp, "%d", STDC_HOSTED);
681
- look_and_install( "__STDC_HOSTED__", DEF_NOARGS_PREDEF, null, tmp);
682
- }
683
- /* Define __STDC__ as 1 or such for Standard conforming compiler. */
684
- if (! look_id( "__STDC__")) {
685
- sprintf( tmp, "%d", stdc_val);
686
- look_and_install( "__STDC__", DEF_NOARGS_STANDARD, null, tmp);
687
- }
688
- }
689
-
690
- #define LINE90LIMIT 32767
691
- #define LINE_CPLUS_LIMIT 32767
692
-
693
- static void set_limit( void)
694
- /*
695
- * Set the minimum translation limits specified by the Standards.
696
- */
697
- {
698
- /* Specified by C 1990 Standard */
699
- std_limits.str_len = SLEN90MIN;
700
- std_limits.id_len = IDLEN90MIN;
701
- std_limits.n_mac_pars = NMACPARS90MIN;
702
- std_limits.exp_nest = EXP_NEST90MIN;
703
- std_limits.blk_nest = BLK_NEST90MIN;
704
- std_limits.inc_nest = INCLUDE_NEST90MIN;
705
- std_limits.n_macro = NMACRO90MIN;
706
- std_limits.line_num = LINE90LIMIT;
707
- }
708
-
709
-
710
- void init_sys_macro( void)
711
- /*
712
- * Define system-specific macros and some Standard required macros
713
- * and undefine macros specified by -U options.
714
- */
715
- {
716
- /* This order is important. */
717
- def_macros(); /* Define macros specified by -D */
718
- init_predefines(); /* Define predefined macros */
719
- undef_macros(); /* Undefine macros specified by -U */
720
- if (mcpp_debug & MACRO_CALL)
721
- dump_def( FALSE, TRUE); /* Finally putout current macro names */
722
- }
723
-
724
- void at_start( void)
725
- /*
726
- * Do the commands prior to processing main source file after do_options().
727
- */
728
- {
729
- FILEINFO * file_saved = infile;
730
-
731
- // We don't support changing the encodings.
732
-
733
- put_info( file_saved);
734
- }
735
-
736
- static void put_info(
737
- FILEINFO * sharp_file
738
- )
739
- /*
740
- * Putout compiler-specific information.
741
- */
742
- {
743
- if (no_output)
744
- return;
745
- sharp_file->line++;
746
- sharp( sharp_file, 0);
747
- sharp_file->line--;
748
- }
749
-
750
- static char * set_files(
751
- int argc,
752
- char ** argv,
753
- char ** in_pp,
754
- char ** out_pp
755
- )
756
- /*
757
- * Set input and/or output files.
758
- */
759
- {
760
- char * cp;
761
-
762
- if (*in_pp == NULL) { /* Input file */
763
- cp = argv[ mcpp_optind++];
764
- #if SYS_FAMILY == SYS_WIN
765
- cp = bsl2sl( cp);
766
- #endif
767
- *in_pp = cp;
768
- }
769
- if (mcpp_optind < argc && argv[ mcpp_optind][ 0] != '-'
770
- && *out_pp == NULL) {
771
- cp = argv[ mcpp_optind++];
772
- #if SYS_FAMILY == SYS_WIN
773
- cp = bsl2sl( cp);
774
- #endif
775
- *out_pp = cp; /* Output file */
776
- }
777
- if (mcpp_optind >= argc)
778
- return NULL; /* Exhausted command line arguments */
779
- if (argv[ mcpp_optind][ 0] == '-')
780
- return argv[ mcpp_optind]; /* More options */
781
- cfatal( "Excessive file argument \"%s\"", argv[ mcpp_optind], 0L , NULL);
782
- return NULL;
783
- }
784
-
785
- static void set_env_dirs( void)
786
- /*
787
- * Add to include path those specified by environment variables.
788
- */
789
- {
790
- const char * env;
791
-
792
- if ((env = getenv( ENV_C_INCLUDE_DIR)) != NULL)
793
- parse_env( env);
794
- }
795
-
796
- static void parse_env(
797
- const char * env
798
- )
799
- /*
800
- * Parse environmental variable and append the path to include-dir-list.
801
- */
802
- {
803
- char * save;
804
- char * save_start;
805
- char * p;
806
- int sep;
807
-
808
- save = save_start = save_string( env);
809
- while (*save) {
810
- p = save;
811
- while (*p && *p != ENV_SEP)
812
- p++;
813
- if (p != save) { /* Variable separator */
814
- sep = *p;
815
- *p = EOS;
816
- set_a_dir( save);
817
- if (sep == EOS)
818
- break;
819
- save = ++p;
820
- }
821
- while (*save == ENV_SEP)
822
- ++save;
823
- }
824
- free( save_start);
825
- }
826
-
827
- static void set_sys_dirs(
828
- int set_cplus_dir /* Set C++ include-directory too */
829
- )
830
- /*
831
- * Set site-specific and system-specific directories to the include directory
832
- * list.
833
- */
834
- {
835
- #if SYS_FAMILY == SYS_UNIX
836
- set_a_dir( "/usr/local/include");
837
- #endif
838
-
839
- #ifdef C_INCLUDE_DIR1
840
- set_a_dir( C_INCLUDE_DIR1);
841
- #endif
842
- #ifdef C_INCLUDE_DIR2
843
- set_a_dir( C_INCLUDE_DIR2);
844
- #endif
845
-
846
- #if SYS_FAMILY == SYS_UNIX
847
- #if SYSTEM == SYS_CYGWIN
848
- if (no_cygwin) /* -mno-cygwin */
849
- set_a_dir( "/usr/include/mingw");
850
- else
851
- set_a_dir( "/usr/include");
852
- #else
853
- set_a_dir( "/usr/include"); /* Should be placed after C_INCLUDE_DIR? */
854
- #endif
855
- #endif
856
- }
857
-
858
- static void set_a_dir(
859
- const char * dirname /* The path-name */
860
- )
861
- /*
862
- * Append an include directory.
863
- * This routine is called from the following routines (in this order).
864
- * 1. do_options() by -I option.
865
- * 2. do_options() by -isystem option (for GNUC).
866
- * 3. set_env_dirs() by environment variables.
867
- * 4. set_sys_dirs() by CPLUS_INCLUDE_DIR?, C_INCLUDE_DIR? and system-
868
- * specifics (unless -I- or -nostdinc option is specified).
869
- * Ignore non-existent directory.
870
- * Note that this routine should be called only in initializing steps,
871
- * because increase of include dirs causes reallocation of incdir[].
872
- * Note: a trailing PATH-DELIM is appended by norm_path().
873
- */
874
- {
875
- char * norm_name;
876
- const char ** ip;
877
-
878
- if (incdir == NULL) { /* Should be initialized */
879
- max_inc = INIT_NUM_INCLUDE;
880
- incdir = (const char **) xmalloc( sizeof (char *) * max_inc);
881
- incend = &incdir[ 0];
882
- } else if (incend - incdir >= max_inc) { /* Buffer full */
883
- incdir = (const char **) xrealloc( (void *) incdir
884
- , sizeof (char *) * max_inc * 2);
885
- incend = &incdir[ max_inc];
886
- max_inc *= 2;
887
- }
888
-
889
- if (dirname == NULL)
890
- return; /* Only to initialize incdir[] */
891
- norm_name = norm_dir( dirname, FALSE);
892
- if (! norm_name) /* Non-existent */
893
- return;
894
- for (ip = incdir; ip < incend; ip++) {
895
- if (str_case_eq( *ip, norm_name)) {
896
- free( norm_name); /* Already registered */
897
- return;
898
- }
899
- }
900
- /* Register new directory */
901
- *incend++ = norm_name;
902
- }
903
-
904
- static char * norm_dir(
905
- const char * dirname, /* Directory path to normalize */
906
- int framework /* Setting a framework directory*/
907
- )
908
- /*
909
- * Normalize include directory path.
910
- * Handle -isysroot option for GCC, including framework directory for SYS_MAC.
911
- */
912
- {
913
- char * norm_name;
914
-
915
- {
916
- norm_name = norm_path( dirname, NULL, FALSE, FALSE);
917
- /* Normalize the pathname to compare */
918
- }
919
-
920
- return norm_name;
921
- }
922
-
923
- static char * norm_path(
924
- const char * dir, /* Include directory (maybe "", never NULL) */
925
- const char * fname,
926
- /* Filename (possibly has directory part, or maybe NULL) */
927
- int inf, /* If TRUE, output some infs when (mcpp_debug & PATH) */
928
- int hmap /* "header map" file of Apple-GCC */
929
- )
930
- /*
931
- * Normalize the pathname removing redundant components such as
932
- * "foo/../", "./" and trailing "/.".
933
- * Append trailing "/" if 'fname' is NULL.
934
- * Change relative path to absolute path.
935
- * Dereference a symbolic linked file (or directory) to a real directory/file.
936
- * Return a malloc'ed buffer, if the directory/file exists.
937
- * Return NULL, if the specified directory/file does not exist or 'dir' is
938
- * not a directory or 'fname' is not a regular file.
939
- * This routine is called from set_a_dir(), init_gcc_macro(), do_once() and
940
- * open_file().
941
- */
942
- {
943
- char * norm_name; /* The path-list converted */
944
- char * start;
945
- char * cp1;
946
- char * cp2;
947
- char * abs_path;
948
- int len; /* Should not be size_t */
949
- size_t start_pos = 0;
950
- char slbuf1[ PATHMAX+1]; /* Working buffer */
951
- #if SYS_FAMILY == SYS_UNIX
952
- char slbuf2[ PATHMAX+1]; /* Working buffer for dereferencing */
953
- #endif
954
- #if SYSTEM == SYS_CYGWIN || SYSTEM == SYS_MINGW
955
- static char * root_dir;
956
- /* System's root directory in Windows file system */
957
- static size_t root_dir_len;
958
- #if SYSTEM == SYS_CYGWIN
959
- static char * cygdrive = "/cygdrive/"; /* Prefix for drive letter */
960
- #else
961
- static char * mingw_dir; /* "/mingw" dir in Windows */
962
- static size_t mingw_dir_len;
963
- #endif
964
- #endif
965
- #if HOST_COMPILER == MSC
966
- struct _stat st_buf;
967
- #else
968
- struct stat st_buf;
969
- #endif
970
-
971
- if (! dir || (*dir && is_full_path( fname)))
972
- cfatal( "Bug: Wrong argument to norm_path()" /* _F_ */
973
- , NULL, 0L, NULL);
974
- inf = inf && (mcpp_debug & PATH); /* Output information */
975
-
976
- strcpy( slbuf1, dir); /* Include directory */
977
- len = strlen( slbuf1);
978
- if (fname && len && slbuf1[ len - 1] != PATH_DELIM) {
979
- slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
980
- slbuf1[ ++len] = EOS;
981
- } else if (! fname && len && slbuf1[ len - 1] == PATH_DELIM) {
982
- /* stat() of some systems do not like trailing '/' */
983
- slbuf1[ --len] = EOS;
984
- }
985
- if (fname)
986
- strcat( slbuf1, fname);
987
- if (stat( slbuf1, & st_buf) != 0 /* Non-existent */
988
- || (! fname && ! S_ISDIR( st_buf.st_mode))
989
- /* Not a directory though 'fname' is not specified */
990
- || (fname && ! S_ISREG( st_buf.st_mode)))
991
- /* Not a regular file though 'fname' is specified */
992
- return NULL;
993
- if (! fname) {
994
- slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
995
- slbuf1[ ++len] = EOS;
996
- }
997
- #if SYS_FAMILY == SYS_UNIX
998
- /* Dereference symbolic linked directory or file, if any */
999
- slbuf1[ len] = EOS; /* Truncate PATH_DELIM and 'fname' part, if any */
1000
- slbuf2[ 0] = EOS;
1001
- if (*dir && ! fname) { /* Registering include directory */
1002
- /* Symbolic link check of directories are required */
1003
- deref_syml( slbuf1, slbuf2, slbuf1);
1004
- } else if (fname) { /* Regular file */
1005
- len = strlen( slbuf1);
1006
- strcat( slbuf1, fname);
1007
- deref_syml( slbuf1, slbuf2, slbuf1 + len);
1008
- /* Symbolic link check of directory */
1009
- if ((len = readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
1010
- /* Dereference symbolic linked file (not directory) */
1011
- *(slbuf2 + len) = EOS;
1012
- cp1 = slbuf1;
1013
- if (slbuf2[ 0] != PATH_DELIM) { /* Relative path */
1014
- cp2 = strrchr( slbuf1, PATH_DELIM);
1015
- if (cp2) /* Append to the source directory */
1016
- cp1 = cp2 + 1;
1017
- }
1018
- strcpy( cp1, slbuf2);
1019
- }
1020
- }
1021
- if (inf) {
1022
- if (slbuf2[ 0])
1023
- mcpp_fprintf( DBG, "Dereferenced \"%s%s\" to \"%s\"\n"
1024
- , dir, fname ? fname : null, slbuf1);
1025
- }
1026
- #endif
1027
- len = strlen( slbuf1);
1028
- start = norm_name = xmalloc( len + 1); /* Need a new buffer */
1029
- strcpy( norm_name, slbuf1);
1030
- #if SYS_FAMILY == SYS_WIN
1031
- bsl2sl( norm_name);
1032
- #endif
1033
- #if SPECIAL_PATH_DELIM /* ':' ? */
1034
- for (cp1 = norm_name; *cp1 != EOS; cp1++) {
1035
- if (*cp1 == PATH_DELIM)
1036
- *cp1 = '/';
1037
- }
1038
- #endif
1039
- cp1 = norm_name;
1040
-
1041
- #if SYSTEM == SYS_CYGWIN
1042
- /* Convert to "/cygdirve/x/dir" style of absolute path-list */
1043
- if (len >= 8 && (memcmp( cp1, "/usr/bin", 8) == 0
1044
- || memcmp( cp1, "/usr/lib", 8) == 0)) {
1045
- memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
1046
- len -= 4;
1047
- }
1048
- if (*cp1 == '/' && (len < 10 || memcmp( cp1, cygdrive, 10) != 0)) {
1049
- /* /dir, not /cygdrive/ */
1050
- if (! root_dir_len) { /* Should be initialized */
1051
- /* Convert "X:\DIR-list" to "/cygdrive/x/dir-list" */
1052
- root_dir = xmalloc( strlen( CYGWIN_ROOT_DIRECTORY) + 1);
1053
- strcpy( root_dir, CYGWIN_ROOT_DIRECTORY);
1054
- *(root_dir + 1) = *root_dir; /* "x:/" to " x/" */
1055
- cp1 = xmalloc( strlen( cygdrive) + strlen( root_dir));
1056
- strcpy( cp1, cygdrive);
1057
- strcat( cp1, root_dir + 1);
1058
- free( root_dir);
1059
- root_dir = cp1;
1060
- root_dir_len = strlen( root_dir);
1061
- }
1062
- cp1 = xmalloc( root_dir_len + len + 1);
1063
- strcpy( cp1, root_dir);
1064
- strcat( cp1, norm_name); /* Convert to absolute path */
1065
- free( norm_name);
1066
- norm_name = start = cp1;
1067
- len += root_dir_len;
1068
- }
1069
- #endif
1070
-
1071
- #if SYSTEM == SYS_MINGW
1072
- /* Handle the mess of MinGW's path-list */
1073
- /* Convert to "x:/dir" style of absolute path-list */
1074
- if (*cp1 == PATH_DELIM && isalpha( *(cp1 + 1))
1075
- && *(cp1 + 2) == PATH_DELIM) { /* /c/, /d/, etc*/
1076
- *cp1 = *(cp1 + 1);
1077
- *(cp1 + 1) = ':'; /* Convert to c:/, d:/, etc */
1078
- } else if (memcmp( cp1, "/mingw", 6) == 0) {
1079
- if (! mingw_dir_len) { /* Should be initialized */
1080
- mingw_dir_len = strlen( MINGW_DIRECTORY);
1081
- mingw_dir = xmalloc( mingw_dir_len + 1);
1082
- strcpy( mingw_dir, MINGW_DIRECTORY);
1083
- }
1084
- cp1 = xmalloc( mingw_dir_len + len + 1);
1085
- strcpy( cp1, mingw_dir);
1086
- strcat( cp1, norm_name + 6); /* Convert to absolute path */
1087
- free( norm_name);
1088
- norm_name = start = cp1;
1089
- len += mingw_dir_len;
1090
- } else if (memcmp( cp1, "/usr", 4) == 0) {
1091
- memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
1092
- len -= 4;
1093
- }
1094
- if (*cp1 == '/') { /* /dir or / */
1095
- if (! root_dir_len) { /* Should be initialized */
1096
- root_dir_len = strlen( MSYS_ROOT_DIRECTORY);
1097
- root_dir = xmalloc( root_dir_len + 1);
1098
- strcpy( root_dir, MSYS_ROOT_DIRECTORY);
1099
- }
1100
- cp1 = xmalloc( root_dir_len + len + 1);
1101
- strcpy( cp1, root_dir);
1102
- strcat( cp1, norm_name); /* Convert to absolute path */
1103
- free( norm_name);
1104
- norm_name = start = cp1;
1105
- len += root_dir_len;
1106
- }
1107
- #endif
1108
-
1109
- #if SYS_FAMILY == SYS_WIN
1110
- if (*(cp1 + 1) == ':')
1111
- start = cp1 += 2; /* Next to the drive letter */
1112
- start_pos = 2;
1113
- #endif
1114
- if (len == 1 && *norm_name == '/') /* Only "/" */
1115
- return norm_name;
1116
-
1117
- if (strncmp( cp1, "./", 2) == 0) /* Remove beginning "./" */
1118
- memmove( cp1, cp1 + 2, strlen( cp1 + 2) + 1); /* +1 for EOS */
1119
- if (*start != '/') { /* Relative path to current directory */
1120
- /* Make absolute path */
1121
- abs_path = xmalloc( len + strlen( cur_work_dir) + 1);
1122
- cp1 = stpcpy( abs_path, cur_work_dir);
1123
- strcpy( cp1, start);
1124
- free( norm_name);
1125
- norm_name = abs_path;
1126
- start = cp1 = norm_name + start_pos;
1127
- }
1128
-
1129
- while ((cp1 = strstr( cp1, "/./")) != NULL)
1130
- memmove( cp1, cp1 + 2, strlen( cp1 + 2) + 1);
1131
- /* Remove "/." of "/./" */
1132
- cp1 = start;
1133
- /* Remove redundant "foo/../" */
1134
- while ((cp1 = strstr( cp1, "/../")) != NULL) {
1135
- *cp1 = EOS;
1136
- if ((cp2 = strrchr( start, '/')) != NULL) {
1137
- if (*(cp1 - 1) != '.') {
1138
- memmove( cp2 + 1, cp1 + 4, strlen( cp1 + 4) + 1);
1139
- /* Remove "foo/../" */
1140
- cp1 = cp2;
1141
- } else { /* Impossible */
1142
- break;
1143
- }
1144
- } else { /* Impossible */
1145
- break;
1146
- }
1147
- }
1148
-
1149
- #if SPECIAL_PATH_DELIM
1150
- for (cp1 = start; *cp1 != EOS; cp1++) {
1151
- if (*cp1 == '/')
1152
- *cp1 = PATH_DELIM;
1153
- }
1154
- #endif
1155
- if (inf) {
1156
- char debug_buf[ PATHMAX+1];
1157
- strcpy( debug_buf, dir);
1158
- strcat( debug_buf, fname ? fname : null);
1159
- #if SYS_FAMILY == SYS_WIN
1160
- bsl2sl( debug_buf);
1161
- #endif
1162
- if (! str_eq( debug_buf, norm_name))
1163
- mcpp_fprintf( DBG, "Normalized the path \"%s\" to \"%s\"\n"
1164
- , debug_buf, norm_name);
1165
- }
1166
-
1167
- return norm_name;
1168
- }
1169
-
1170
- #if SYS_FAMILY == SYS_UNIX
1171
-
1172
- static void deref_syml(
1173
- char * slbuf1, /* Original path-list */
1174
- char * slbuf2, /* Working buffer */
1175
- char * chk_start /* Pointer into slbuf1 */
1176
- )
1177
- /* Dereference symbolic linked directory */
1178
- {
1179
- char * cp2;
1180
- int len; /* Should be int, not size_t */
1181
-
1182
- while ((chk_start = strchr( chk_start, PATH_DELIM)) != NULL) {
1183
- *chk_start = EOS;
1184
- if ((len = readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
1185
- /* Dereference symbolic linked directory */
1186
- cp2 = strrchr( slbuf1, PATH_DELIM); /* Previous delimiter */
1187
- *chk_start = PATH_DELIM;
1188
- strcpy( slbuf2 + len, chk_start);
1189
- if (slbuf2[ 0] == PATH_DELIM) { /* Absolute path */
1190
- strcpy( slbuf1, slbuf2);
1191
- chk_start = slbuf1 + len + 1;
1192
- } else {
1193
- if (cp2)
1194
- chk_start = cp2 + 1;
1195
- else
1196
- chk_start = slbuf1;
1197
- strcpy( chk_start, slbuf2); /* Rewrite the path */
1198
- chk_start += len;
1199
- }
1200
- } else {
1201
- *chk_start++ = PATH_DELIM;
1202
- }
1203
- }
1204
- }
1205
- #endif
1206
-
1207
- static void def_macros( void)
1208
- /*
1209
- * Define macros specified by -D option.
1210
- * This routine should be called before undef_macros().
1211
- */
1212
- {
1213
- int i;
1214
-
1215
- for (i = 0; i < def_cnt; i++)
1216
- def_a_macro( 'D', def_list[ i]);
1217
- }
1218
-
1219
- static void undef_macros( void)
1220
- /*
1221
- * Undefine macros specified by -U option.
1222
- * This routine should be called after init_predefine().
1223
- */
1224
- {
1225
- char * name;
1226
- int i;
1227
-
1228
- for (i = 0; i < undef_cnt; i++) {
1229
- name = undef_list[ i];
1230
- if (look_id( name) != NULL)
1231
- undefine( name);
1232
- else if (warn_level & 8)
1233
- mcpp_fprintf( ERR, "\"%s\" wasn't defined\n", name);
1234
- }
1235
- }
1236
-
1237
- void put_depend(
1238
- const char * filename
1239
- )
1240
- /*
1241
- * Append a header name to the source file dependency line.
1242
- */
1243
- {
1244
- #define MAX_OUT_LEN 76 /* Maximum length of output line */
1245
- #define MKDEP_INITLEN (MKDEP_INIT * 0x100)
1246
- #define MKDEP_MAX (MKDEP_INIT * 0x10)
1247
- #define MKDEP_MAXLEN (MKDEP_INITLEN * 0x10)
1248
-
1249
- static char * output = NULL; /* File names */
1250
- static size_t * pos = NULL; /* Offset to filenames */
1251
- static int pos_num; /* Index of pos[] */
1252
- static char * out_p; /* Pointer to output[] */
1253
- static size_t mkdep_len; /* Size of output[] */
1254
- static size_t pos_max; /* Size of pos[] */
1255
- static FILE * fp; /* Path to output dependency line */
1256
- static size_t llen; /* Length of current physical output line */
1257
- size_t * pos_p; /* Index into pos[] */
1258
- size_t fnamlen; /* Length of filename */
1259
-
1260
- if (fp == NULL) { /* Main source file. Have to initialize. */
1261
- if (output != NULL) {
1262
- free( output);
1263
- free( pos);
1264
- }
1265
- output = xmalloc( mkdep_len = MKDEP_INITLEN);
1266
- pos = (size_t *) xmalloc( (pos_max = MKDEP_INIT) * sizeof (size_t));
1267
- out_p = md_init( filename, output);
1268
- fp = mkdep_fp;
1269
- llen = strlen( output);
1270
- pos_num = 0; /* Initialize for MCPP_LIB build */
1271
- } else if (filename == NULL) { /* End of input */
1272
- out_p = stpcpy( out_p, "\n\n");
1273
- if (mkdep & MD_PHONY) {
1274
- /* Output the phony target line for each recorded header files. */
1275
- char * cp;
1276
- int c;
1277
-
1278
- if (strlen( output) * 2 + (pos_num * 2) >= MKDEP_MAXLEN) {
1279
- cerror( "Too long dependency line" /* _E_ */
1280
- , NULL, 0L, NULL);
1281
- if (fp == fp_out)
1282
- mcpp_fputs( output, OUT);
1283
- else
1284
- fputs( output, fp);
1285
- return;
1286
- } else if (strlen( output) * 2 + (pos_num * 2) >= mkdep_len) {
1287
- /* Enlarge the buffer */
1288
- size_t len = out_p - output;
1289
- output = xrealloc( output, mkdep_len *= 2);
1290
- out_p = output + len;
1291
- }
1292
- pos_num--;
1293
- for (pos_p = &pos[ 0]; pos_p <= &pos[ pos_num]; pos_p++) {
1294
- if (pos_p == &pos[ pos_num]) { /* End of output */
1295
- for (cp = output + *pos_p; *cp != '\n'; cp++)
1296
- ;
1297
- c = '\n'; /* Append newline */
1298
- } else {
1299
- cp = output + *(pos_p + 1) - 1;
1300
- while( *cp == ' ' || *cp == '\\' || *cp == '\n')
1301
- cp--; /* Remove trailing spaces */
1302
- c = *(++cp);
1303
- }
1304
- *cp = EOS;
1305
- out_p = stpcpy( out_p, output + *pos_p);
1306
- out_p = stpcpy( out_p, ":\n\n");
1307
- *cp = c;
1308
- }
1309
- }
1310
- if (fp == fp_out) { /* To the same path with normal preprocessing */
1311
- mcpp_fputs( output, OUT);
1312
- } else { /* To the file specified by -MF, -MD, -MMD options */
1313
- fputs( output, fp);
1314
- fclose( fp);
1315
- }
1316
- fp = NULL; /* Clear for the next call in MCPP_LIB build */
1317
- return;
1318
- }
1319
-
1320
- fnamlen = strlen( filename);
1321
- /* Check the recorded filename */
1322
- for (pos_p = pos; pos_p < &pos[ pos_num]; pos_p++) {
1323
- if (memcmp( output + *pos_p, filename, fnamlen) == 0)
1324
- return; /* Already recorded filename */
1325
- }
1326
- /* Any new header. Append its name to output. */
1327
- if (llen + fnamlen > MAX_OUT_LEN) { /* Line is long */
1328
- out_p = stpcpy( out_p, " \\\n "); /* Fold it */
1329
- llen = 1;
1330
- }
1331
- llen += fnamlen + 1;
1332
- if (pos_num >= MKDEP_MAX
1333
- || out_p + fnamlen + 1 >= output + MKDEP_MAXLEN)
1334
- cfatal( "Too long dependency line: %s", output, 0L, NULL);
1335
- /* Need to enlarge the buffer */
1336
- if (pos_num >= pos_max) {
1337
- pos = (size_t *) xrealloc( (char *) pos
1338
- , (pos_max *= 2) * sizeof (size_t *));
1339
- }
1340
- if (output + mkdep_len <= out_p + fnamlen + 1) {
1341
- size_t len = out_p - output;
1342
- output = xrealloc( output, mkdep_len *= 2);
1343
- out_p = output + len;
1344
- }
1345
- *out_p++ = ' ';
1346
- pos[ pos_num++] = out_p - output; /* Remember the offset */
1347
- /* Don't use pointer, since 'output' may be reallocated later. */
1348
- out_p = stpcpy( out_p, filename);
1349
- }
1350
-
1351
- static char * md_init(
1352
- const char * filename, /* The source file name */
1353
- char * output /* Output to dependency file */
1354
- )
1355
- /*
1356
- * Initialize output file and target.
1357
- */
1358
- {
1359
- char prefix[ PATHMAX];
1360
- char * cp = NULL;
1361
- size_t len;
1362
- char * out_p;
1363
- const char * target = filename;
1364
- const char * cp0;
1365
-
1366
- if (! mkdep_target || ! mkdep_fp) { /* Make target name */
1367
- #ifdef PATH_DELIM
1368
- if ((cp0 = strrchr( target, PATH_DELIM)) != NULL)
1369
- target = cp0 + 1;
1370
- #endif
1371
- if ((cp0 = strrchr( target, '.')) == NULL)
1372
- len = strlen( target);
1373
- else
1374
- len = (size_t) (cp0 - target);
1375
- memcpy( prefix, target, len);
1376
- cp = prefix + len;
1377
- *cp++ = '.';
1378
- }
1379
-
1380
- if (! mkdep_fp) { /* Unless already opened by -MF, -MD, -MMD options */
1381
- if (mkdep & MD_FILE) {
1382
- strcpy( cp, "d");
1383
- mkdep_fp = mcpp_fopen(prefix, "w");
1384
- } else {
1385
- mkdep_fp = fp_out; /* Output dependency line to normal output */
1386
- no_output++; /* Without normal output */
1387
- }
1388
- }
1389
-
1390
- if (mkdep_target) { /* -MT or -MQ option is specified */
1391
- if (mkdep & MD_QUOTE) { /* 'Quote' $, \t and space */
1392
- out_p = md_quote( output);
1393
- } else {
1394
- out_p = stpcpy( output, mkdep_target);
1395
- }
1396
- } else {
1397
- strcpy( cp, OBJEXT);
1398
- out_p = stpcpy( output, prefix);
1399
- }
1400
-
1401
- *out_p++ = ':';
1402
- *out_p = EOS;
1403
- return out_p;
1404
- }
1405
-
1406
- static char * md_quote(
1407
- char * output
1408
- )
1409
- /*
1410
- * 'Quote' $, tab and space.
1411
- * This function was written referring to GCC V.3.2 source.
1412
- */
1413
- {
1414
- char * p;
1415
- char * q;
1416
-
1417
- for (p = mkdep_target; *p; p++, output++) {
1418
- switch (*p) {
1419
- case ' ':
1420
- case '\t':
1421
- /* GNU-make treats backslash-space sequence peculiarly */
1422
- for (q = p - 1; mkdep_target <= q && *q == '\\'; q--)
1423
- *output++ = '\\';
1424
- *output++ = '\\';
1425
- break;
1426
- case '$':
1427
- *output++ = '$';
1428
- break;
1429
- default:
1430
- break;
1431
- }
1432
- *output = *p;
1433
- }
1434
- *output = EOS;
1435
- return output;
1436
- }
1437
-
1438
- static const char * toolong_fname =
1439
- "Too long header name \"%s%.0ld%s\""; /* _F_ */
1440
- static const char * excess_token =
1441
- "Excessive token sequence \"%s\""; /* _E_, _W1_ */
1442
-
1443
- int do_include(
1444
- int next /* TRUE if the directive is #include_next */
1445
- )
1446
- /*
1447
- * Process the #include line.
1448
- * There are three variations:
1449
- * #include "file" search somewhere relative to the
1450
- * current (or source) directory, if not
1451
- * found, treat as #include <file>.
1452
- * #include <file> Search in an implementation-dependent
1453
- * list of places.
1454
- * #include macro-call Expand the macro call, it must be one of
1455
- * "file" or <file>, process as such.
1456
- * On success : return TRUE;
1457
- * On failure of syntax : return FALSE;
1458
- * On failure of file opening : return FALSE.
1459
- * do_include() always absorbs the line (including the <newline>).
1460
- */
1461
- {
1462
- const char * const no_name = "No header name"; /* _E_ */
1463
- char header[ PATHMAX + 16];
1464
- int token_type;
1465
- char * fname;
1466
- char * filename;
1467
- int delim; /* " or <, > */
1468
-
1469
- if ((delim = skip_ws()) == '\n') { /* No argument */
1470
- cerror( no_name, NULL, 0L, NULL);
1471
- return FALSE;
1472
- }
1473
- fname = infile->bptr - 1; /* Current token for diagnosis */
1474
-
1475
- if ((char_type[ delim] & LET)) { /* Maybe macro */
1476
- int c;
1477
- char *hp;
1478
-
1479
- hp = header;
1480
- *hp = EOS;
1481
- c = delim;
1482
- while (get_unexpandable( c, FALSE) != NO_TOKEN) {
1483
- /* Expand any macros in the line */
1484
- if (header + PATHMAX < hp + (int) (workp - work_buf))
1485
- cfatal( toolong_fname, header, 0L, work_buf);
1486
- hp = stpcpy( hp, work_buf);
1487
- while (char_type[ c = get_ch()] & HSP)
1488
- *hp++ = c;
1489
- }
1490
- *hp = EOS; /* Ensure to terminate */
1491
- if (macro_line == MACRO_ERROR) /* Unterminated macro */
1492
- return FALSE; /* already diagnosed. */
1493
- unget_string( header, NULL); /* To re-read */
1494
- delim = skip_ws();
1495
- if (delim == '\n') {
1496
- cerror( no_name, NULL, 0L, NULL); /* Expanded to */
1497
- return FALSE; /* 0 token. */
1498
- }
1499
- }
1500
-
1501
- token_type = scan_token( delim, (workp = work_buf, &workp)
1502
- , work_buf + PATHMAX);
1503
- if (token_type == STR) /* String literal form */
1504
- goto found_name;
1505
- else if (token_type == OPE && openum == OP_LT) /* '<' */
1506
- workp = scan_quote( delim, work_buf, work_buf + PATHMAX, TRUE);
1507
- /* Re-construct or diagnose */
1508
- else /* Any other token in- */
1509
- goto not_header; /* cluding <=, <<, <% */
1510
-
1511
- if (workp == NULL) /* Missing closing '>' */
1512
- goto syntax_error;
1513
-
1514
- found_name:
1515
- *--workp = EOS; /* Remove the closing and */
1516
- fname = save_string( &work_buf[ 1]); /* the starting delimiter. */
1517
-
1518
- if (skip_ws() != '\n') {
1519
- cerror( excess_token, infile->bptr-1, 0L, NULL);
1520
- skip_nl();
1521
- goto error;
1522
- }
1523
-
1524
- #if SYS_FAMILY == SYS_WIN
1525
- bsl2sl( fname);
1526
- #endif
1527
- filename = fname;
1528
- #if NO_DIR /* Unofficial feature */
1529
- if (no_dir) { /* Strip directory components */
1530
- char src_dir[ PATHMAX] = { EOS, };
1531
- if (has_directory( fname, src_dir))
1532
- filename = fname + strlen( src_dir);
1533
- delim = '"'; /* Even a system header is handled as a local one */
1534
- }
1535
- #endif
1536
- if (open_include( filename, (delim == '"'), next)) {
1537
- /* 'fname' should not be free()ed, it is used as file-> */
1538
- /* real_fname and has been registered into fnamelist[] */
1539
- return TRUE;
1540
- }
1541
-
1542
- cerror( "Can't open include file \"%s\"", filename, 0L, NULL); /* _E_ */
1543
- error:
1544
- free( fname);
1545
- return FALSE;
1546
-
1547
- not_header:
1548
- cerror( "Not a header name \"%s\"", fname, 0L, NULL); /* _E_ */
1549
- syntax_error:
1550
- skip_nl();
1551
- return FALSE;
1552
- }
1553
-
1554
- static int open_include(
1555
- char * filename, /* File name to include */
1556
- int searchlocal, /* TRUE if #include "file" */
1557
- int next /* TRUE if #include_next */
1558
- )
1559
- /*
1560
- * Open an include file. This routine is only called from do_include() above.
1561
- * It searches the list of directories via search_dir() and opens the file
1562
- * via open_file(), linking it into the list of active files.
1563
- * Returns TRUE if the file was opened, FALSE if it fails.
1564
- */
1565
- {
1566
- char src_dir[ PATHMAX] = { EOS, }; /* Directory part of includer */
1567
- int full_path; /* Filename is full-path-list */
1568
- int has_dir = FALSE; /* Includer has directory part */
1569
- int has_dir_src = FALSE;
1570
- int has_dir_fname = FALSE;
1571
-
1572
- full_path = is_full_path( filename);
1573
-
1574
- if (!full_path && searchlocal && (search_rule & SOURCE)) {
1575
- has_dir_src = has_directory( infile->src_dir, src_dir);
1576
- has_dir_fname = has_directory( infile->real_fname
1577
- , src_dir + strlen( src_dir));
1578
- /* Get directory part of the parent file of the file to include.*/
1579
- /* Note that infile->dirp of main input file is set to "" and */
1580
- /* remains the same even if -include options are processed. */
1581
- has_dir = has_dir_src || has_dir_fname
1582
- || (**(infile->dirp) != EOS);
1583
- }
1584
- if (mcpp_debug & PATH)
1585
- mcpp_fprintf( DBG, "filename: %s\n", filename);
1586
-
1587
- if ((searchlocal && ((search_rule & CURRENT) || !has_dir)) || full_path) {
1588
- /*
1589
- * Look in local directory first.
1590
- * Try to open filename relative to the "current directory".
1591
- */
1592
- if (open_file( &null, NULL, filename, searchlocal && !full_path
1593
- , FALSE, FALSE))
1594
- return TRUE;
1595
- if (full_path)
1596
- return FALSE;
1597
- }
1598
-
1599
- if (searchlocal && (search_rule & SOURCE) && has_dir) {
1600
- /*
1601
- * Look in local directory of source file.
1602
- * Try to open filename relative to the "source directory".
1603
- */
1604
- if (open_file( infile->dirp, src_dir, filename, TRUE, FALSE, FALSE))
1605
- return TRUE;
1606
- }
1607
-
1608
- /* Search the include directories */
1609
- if (search_dir( filename, searchlocal, next))
1610
- return TRUE;
1611
-
1612
- return FALSE;
1613
- }
1614
-
1615
- static int has_directory(
1616
- const char * source, /* Filename to examine */
1617
- char * directory /* Put directory stuff here */
1618
- )
1619
- /*
1620
- * If a directory is found in the 'source' filename string (i.e. "includer"),
1621
- * the directory part of the string is copied to 'directory' and
1622
- * has_directory() returns TRUE.
1623
- * Else, nothing is copied and it returns FALSE.
1624
- */
1625
- {
1626
- const char * sp;
1627
- size_t len;
1628
-
1629
- if (! source)
1630
- return FALSE;
1631
- if ((sp = strrchr( source, PATH_DELIM)) == NULL) {
1632
- return FALSE;
1633
- } else {
1634
- len = (size_t)(sp - source) + 1; /* With path-delimiter */
1635
- memcpy( directory, source, len);
1636
- directory[ len] = EOS;
1637
- return TRUE;
1638
- }
1639
- }
1640
-
1641
- static int is_full_path(
1642
- const char * path
1643
- )
1644
- /*
1645
- * Check whether the path is a full (absolute) path list or not.
1646
- */
1647
- {
1648
- if (! path)
1649
- return FALSE;
1650
- #if SYS_FAMILY == SYS_UNIX
1651
- if (path[0] == PATH_DELIM)
1652
- #elif SYS_FAMILY == SYS_WIN
1653
- if ((path[1] == ':' && path[2] == PATH_DELIM) /* "C:/path" */
1654
- || path[0] == PATH_DELIM) /* Root dir of current drive */
1655
- #elif 1
1656
- /* For other systems you should write code here. */
1657
- if (path[0] == PATH_DELIM)
1658
- #endif
1659
- return TRUE;
1660
- else
1661
- return FALSE;
1662
- }
1663
-
1664
- static int search_dir(
1665
- char * filename, /* File name to include */
1666
- int searchlocal, /* #include "header.h" */
1667
- int next /* TRUE if #include_next */
1668
- )
1669
- /*
1670
- * Look in any directories specified by -I command line arguments,
1671
- * specified by environment variable, then in the builtin search list.
1672
- */
1673
- {
1674
- const char ** incptr; /* -> inlcude directory */
1675
-
1676
- incptr = incdir;
1677
-
1678
- for ( ; incptr < incend; incptr++) {
1679
- if (strlen( *incptr) + strlen( filename) >= PATHMAX)
1680
- cfatal( toolong_fname, *incptr, 0L, filename); /* _F_ */
1681
- if (open_file( incptr, NULL, filename, FALSE, FALSE, FALSE))
1682
- /* Now infile has been renewed */
1683
- return TRUE;
1684
- }
1685
-
1686
- return FALSE;
1687
- }
1688
-
1689
- static int open_file(
1690
- const char ** dirp, /* Pointer to include directory */
1691
- const char * src_dir, /* Source directory of includer */
1692
- const char * filename, /* Filename (possibly has directory) */
1693
- int local, /* #include "file" */
1694
- int include_opt, /* Specified by -include option */
1695
- int sys_frame /* System framework header (for SYS_MAC)*/
1696
- )
1697
- /*
1698
- * Open a file, add it to the linked list of open files, close the includer
1699
- * if nessesary and truncate the includer's buffer.
1700
- * This is called from open_include() and at_start().
1701
- */
1702
- {
1703
- char dir_fname[ PATHMAX] = { EOS, };
1704
- #if HOST_COMPILER == BORLANDC
1705
- /* Borland's fopen() does not set errno. */
1706
- static int max_open = FOPEN_MAX - 5;
1707
- #else
1708
- static int max_open;
1709
- #endif
1710
- int len;
1711
- FILEINFO * file = infile;
1712
- FILE * fp;
1713
- char * fullname;
1714
- const char * fname;
1715
-
1716
- errno = 0; /* Clear errno possibly set by path searching */
1717
- {
1718
- if (mcpp_debug & PATH)
1719
- mcpp_fprintf( DBG, "Searching %s%s%s\n", *dirp
1720
- , src_dir ? src_dir : null, filename);
1721
- }
1722
- /* src_dir is usually NULL. This is specified to */
1723
- /* search the source directory of the includer. */
1724
- if (src_dir && *src_dir != EOS) {
1725
- strcpy( dir_fname, src_dir);
1726
- strcat( dir_fname, filename);
1727
- fname = dir_fname;
1728
- } else {
1729
- fname = filename;
1730
- }
1731
-
1732
- fullname = norm_path( *dirp, fname, TRUE, FALSE);
1733
- /* Convert to absolute path */
1734
- if (! fullname) /* Non-existent or directory */
1735
- return FALSE;
1736
- if (included( fullname)) /* Once included */
1737
- goto true;
1738
-
1739
- if ((max_open != 0 && max_open <= include_nest)
1740
- /* Exceed the known limit of open files */
1741
- || ((fp = mcpp_fopen( fullname, "r")) == NULL && errno == EMFILE)) {
1742
- /* Reached the limit for the first time */
1743
- if (mcpp_debug & PATH) {
1744
- #if HOST_COMPILER == BORLANDC
1745
- if (include_nest == FOPEN_MAX - 5)
1746
- #else
1747
- if (max_open == 0)
1748
- #endif
1749
- mcpp_fprintf( DBG,
1750
- "#include nest reached at the maximum of system: %d, returned errno: %d\n"
1751
- , include_nest, errno);
1752
- }
1753
- /*
1754
- * Table of open files is full.
1755
- * Remember the file position and close the includer.
1756
- * The state will be restored by get_line() on end of the included.
1757
- */
1758
- file->pos = ftell( file->fp);
1759
- fclose( file->fp);
1760
- /* In case of failure, re-open the includer */
1761
- if ((fp = mcpp_fopen( fullname, "r")) == NULL) {
1762
- file->fp = mcpp_fopen( cur_fullname, "r");
1763
- fseek( file->fp, file->pos, SEEK_SET);
1764
- goto false;
1765
- }
1766
- if (max_open == 0) /* Remember the limit of the system */
1767
- max_open = include_nest;
1768
- } else if (fp == NULL) /* No read permission */
1769
- goto false;
1770
- /* Truncate buffer of the includer to save memory */
1771
- len = (int) (file->bptr - file->buffer);
1772
- if (len) {
1773
- file->buffer = xrealloc( file->buffer, len + 1);
1774
- file->bptr = file->buffer + len;
1775
- }
1776
-
1777
- if (! include_opt)
1778
- sharp( NULL, 0); /* Print includer's line num and fname */
1779
- add_file( fp, src_dir, filename, fullname, include_opt);
1780
- /* Add file-info to the linked list. 'infile' has been just renewed */
1781
- /*
1782
- * Remember the directory for #include_next.
1783
- * Note: inc_dirp is restored to the parent includer's directory
1784
- * by get_ch() when the current includer is finished.
1785
- */
1786
- infile->dirp = inc_dirp = dirp;
1787
- #if 0 /* This part is only for debugging */
1788
- chk_dirp( dirp);
1789
- #endif
1790
- cur_fullname = fullname;
1791
-
1792
- if (! include_opt) { /* Do not sharp() on -include */
1793
- src_line = 1; /* Working on line 1 now */
1794
- sharp( NULL, 1); /* Print out the included file name */
1795
- }
1796
- src_line = 0; /* To read the first line */
1797
-
1798
- if (mkdep && ((mkdep & MD_SYSHEADER) || ! infile->sys_header))
1799
- put_depend( fullname); /* Output dependency line */
1800
-
1801
- true:
1802
- return TRUE;
1803
- false:
1804
- free( fullname);
1805
- return FALSE;
1806
- }
1807
-
1808
- void add_file(
1809
- FILE * fp, /* Open file pointer */
1810
- const char * src_dir, /* Directory of source */
1811
- const char * filename, /* Name of the file */
1812
- const char * fullname, /* Full path list */
1813
- int include_opt /* File specified by -include option */
1814
- )
1815
- /*
1816
- * Initialize tables for this open file. This is called from open_file()
1817
- * (for #include files), and from the entry to MCPP to open the main input
1818
- * file. It calls a common routine get_file() to build the FILEINFO
1819
- * structure which is used to read characters.
1820
- */
1821
- {
1822
- FILEINFO * file;
1823
- const char * too_many_include_nest =
1824
- "More than %.0s%ld nesting of #include"; /* _F_ _W4_ */
1825
-
1826
- //
1827
- // When encoding is UTF-8, skip BOM if present.
1828
- //
1829
- if(fp != NULL && ftell(fp) == 0)
1830
- {
1831
- const unsigned char UTF8_BOM[3] = {0xEF, 0xBB, 0xBF};
1832
- unsigned char FILE_HEAD[3] = {0, 0, 0};
1833
- int i;
1834
- for(i = 0; i < 3; ++i)
1835
- {
1836
- FILE_HEAD[i] = getc(fp);
1837
- if(FILE_HEAD[i] != UTF8_BOM[i])
1838
- {
1839
- if(FILE_HEAD[i] == (unsigned char)EOF)
1840
- {
1841
- i--;
1842
- }
1843
- for(; i >= 0; --i)
1844
- {
1845
- ungetc(FILE_HEAD[i], fp);
1846
- }
1847
- break;
1848
- }
1849
- }
1850
- }
1851
-
1852
- filename = set_fname( filename); /* Search or append to fnamelist[] */
1853
- fullname = set_fname( fullname); /* Search or append to fnamelist[] */
1854
- file = get_file( filename, src_dir, fullname, (size_t) NBUFF, include_opt);
1855
- /* file == infile */
1856
- file->fp = fp; /* Better remember FILE * */
1857
- cur_fname = filename;
1858
-
1859
- if (include_nest >= INCLUDE_NEST) /* Probably recursive #include */
1860
- cfatal( too_many_include_nest, NULL, (long) INCLUDE_NEST, NULL);
1861
- if ((warn_level & 4)
1862
- && include_nest == std_limits.inc_nest + 1)
1863
- cwarn( too_many_include_nest, NULL, (long) std_limits.inc_nest, NULL);
1864
- include_nest++;
1865
- }
1866
-
1867
- static const char * set_fname(
1868
- const char * filename
1869
- )
1870
- /*
1871
- * Register the source filename to fnamelist[].
1872
- * Search fnamelist[] for filename or append filename to fnamelist[].
1873
- * Returns the pointer.
1874
- * file->real_fname and file->full_fname points into fnamelist[].
1875
- */
1876
- {
1877
- INC_LIST * fnamep;
1878
- size_t fnamelen;
1879
-
1880
- if (fnamelist == NULL) { /* Should be initialized */
1881
- max_fnamelist = INIT_NUM_FNAMELIST;
1882
- fnamelist = (INC_LIST *) xmalloc( sizeof (INC_LIST) * max_fnamelist);
1883
- fname_end = &fnamelist[ 0];
1884
- } else if (fname_end - fnamelist >= max_fnamelist) {
1885
- /* Buffer full: double the elements */
1886
- fnamelist = (INC_LIST *) xrealloc( (void *) fnamelist
1887
- , sizeof (INC_LIST) * max_fnamelist * 2);
1888
- fname_end = &fnamelist[ max_fnamelist];
1889
- max_fnamelist *= 2;
1890
- }
1891
-
1892
- /* Register the filename in fnamelist[] */
1893
- fnamelen = strlen( filename);
1894
- for (fnamep = fnamelist; fnamep < fname_end; fnamep++) {
1895
- if (fnamep->len == fnamelen && str_case_eq( fnamep->name, filename))
1896
- return filename; /* Already registered */
1897
- }
1898
- fname_end->name = xmalloc( fnamelen + 1);
1899
- filename = strcpy( fname_end->name, filename);
1900
- /* Global pointer for get_file() */
1901
- fname_end->len = fnamelen;
1902
- fname_end++;
1903
-
1904
- return filename;
1905
- }
1906
-
1907
- #if 0 /* This part is only for debugging */
1908
- static int chk_dirp(
1909
- const char ** dirp
1910
- )
1911
- /*
1912
- * Check the validity of include directory specified for open_file().
1913
- * Called only from open_file().
1914
- */
1915
- {
1916
- const char ** ip;
1917
-
1918
- if (dirp == &null)
1919
- return TRUE;
1920
-
1921
- for (ip = incdir; ip < incend; ip++)
1922
- if (dirp == ip)
1923
- break;
1924
- if (ip == incend) {
1925
- #if COMPILER == MSC
1926
- FILEINFO * pfile = infile->parent;
1927
- if (pfile) {
1928
- while ((pfile = pfile->parent) != NULL) {
1929
- /* Search each parent includer's directory */
1930
- if (dirp == pfile->dirp)
1931
- break;
1932
- }
1933
- }
1934
- if (! pfile)
1935
- #endif
1936
- #if COMPILER == GNUC
1937
- const char ** qdir;
1938
- for (qdir = quote_dir; qdir < quote_dir_end; qdir++) {
1939
- if (dirp == qdir)
1940
- break;
1941
- }
1942
- if (qdir == quote_dir_end)
1943
- #endif
1944
- {
1945
- cfatal( "Bug: *dirp:%s is invalid", *dirp, 0L, NULL);
1946
- return FALSE;
1947
- }
1948
- }
1949
- return TRUE;
1950
- }
1951
- #endif
1952
-
1953
- FILEINFO* sh_file;
1954
- int sh_line;
1955
-
1956
- void sharp(
1957
- FILEINFO * sharp_file,
1958
- int flag /* Flag to append to the line for GCC */
1959
- )
1960
- /*
1961
- * Output a line number line.
1962
- * 'file' is 'sharp_file' if specified,
1963
- * else (i.e. 'sharp_file' is NULL) 'infile'.
1964
- */
1965
- {
1966
- FILEINFO * file;
1967
- int line;
1968
-
1969
- file = sharp_file ? sharp_file : infile;
1970
- if (! file)
1971
- return;
1972
- while (! file->fp)
1973
- file = file->parent;
1974
- line = sharp_file ? sharp_file->line : src_line;
1975
- if (no_output || file == NULL
1976
- || (file == sh_file && line == sh_line))
1977
- goto sharp_exit;
1978
- sh_file = file;
1979
- sh_line = line;
1980
- if (keep_comments)
1981
- mcpp_fputc( '\n', OUT); /* Ensure to be on line top */
1982
- if (std_line_prefix)
1983
- mcpp_fprintf( OUT, "#line %ld", line);
1984
- else
1985
- mcpp_fprintf( OUT, "%s%ld", LINE_PREFIX, line);
1986
- cur_file( file, sharp_file, flag);
1987
- mcpp_fputc( '\n', OUT);
1988
- sharp_exit:
1989
- wrong_line = FALSE;
1990
- }
1991
-
1992
- static void cur_file(
1993
- FILEINFO * file, /* infile or sharp_file */
1994
- FILEINFO * sharp_file, /* The 'file' or NULL */
1995
- int flag /* Flag to append for GCC */
1996
- )
1997
- /*
1998
- * Output current source file name and line number.
1999
- * Called only from sharp() above.
2000
- */
2001
- {
2002
- const char * name;
2003
-
2004
- if (mcpp_debug & MACRO_CALL) { /* In macro notification mode */
2005
- if (sharp_file) /* Main input file */
2006
- name = file->filename;
2007
- else /* Output full-path-list, normalized */
2008
- name = cur_fullname;
2009
- } else { /* Usually, the path not "normalized" */
2010
- if (sharp_file) { /* Main input file */
2011
- name = file->filename;
2012
- } else if (str_eq( file->filename, file->real_fname)) {
2013
- sprintf( work_buf, "%s%s", *(file->dirp), cur_fname);
2014
- name = work_buf;
2015
- } else { /* Changed by '#line fname' directive */
2016
- name = file->filename;
2017
- }
2018
- }
2019
- if (sharp_filename == NULL || ! str_eq( name, sharp_filename)) {
2020
- if (sharp_filename != NULL)
2021
- free( sharp_filename);
2022
- sharp_filename = save_string( name);
2023
- }
2024
- mcpp_fprintf( OUT, " \"%s\"", name);
2025
- }
2026
-
2027
- #if SYS_FAMILY == SYS_WIN
2028
-
2029
- static char * bsl2sl(
2030
- char * filename
2031
- )
2032
- /*
2033
- * Convert '\\' in the path-list to '/'.
2034
- */
2035
- {
2036
- static int diagnosed = FALSE;
2037
- char * cp;
2038
-
2039
- cp = filename;
2040
-
2041
- while (*cp) {
2042
- if (*cp == '\\') {
2043
- *cp++ = PATH_DELIM;
2044
- if (!diagnosed && (warn_level & 2) && (warn_level != -1)) {
2045
- /* Backslash in source program */
2046
- cwarn( "Converted \\ to %s", "/", 0L, NULL); /* _W2_ */
2047
- diagnosed = TRUE; /* Diagnose only once */
2048
- }
2049
- } else {
2050
- cp++;
2051
- }
2052
- }
2053
-
2054
- return filename;
2055
- }
2056
-
2057
- #endif /* SYS_FAMILY == SYS_WIN */
2058
-
2059
- static const char * const unknown_arg =
2060
- "Unknown argument \"%s\""; /*_W1_*/
2061
- static const char * const not_ident =
2062
- "Not an identifier \"%s\""; /*_W1_*/
2063
-
2064
- static int is_junk( void)
2065
- /*
2066
- * Check the trailing junk in a directive line.
2067
- * This routine is never called in OLD_PREP mode.
2068
- */
2069
- {
2070
- int c;
2071
-
2072
- c = skip_ws();
2073
- unget_ch();
2074
- if (c != '\n') { /* Trailing junk */
2075
- if (warn_level & 1)
2076
- cwarn( unknown_arg, infile->bptr, 0L, NULL);
2077
- return TRUE;
2078
- } else {
2079
- return FALSE;
2080
- }
2081
- }
2082
-
2083
- #define PUSH 1
2084
- #define POP -1
2085
-
2086
- #define __SETLOCALE 1 /* #pragma __setlocale( "encoding") */
2087
- #define SETLOCALE 2 /* #pragma setlocale( "encoding") */
2088
-
2089
- void do_pragma( void)
2090
- /*
2091
- * Process the #pragma lines.
2092
- * 1. Process the sub-directive for MCPP.
2093
- * 2. Pass the line to the compiler-proper.
2094
- * #pragma MCPP put_defines, #pragma MCPP preprocess,
2095
- * #pragma MCPP preprocessed and #pragma once are, however, not put
2096
- * out so as not to duplicate output when re-preprocessed.
2097
- * When EXPAND_PRAGMA == TRUE and (__STDC_VERSION__ >= 199901L or
2098
- * __cplusplus >= 199901L), the line is subject to macro expansion unless
2099
- * the next to 'pragma' token is one of 'STDC', 'GCC' or 'MCPP'.
2100
- */
2101
- {
2102
- int c;
2103
- int warn = FALSE; /* Necessity of warning */
2104
- int token_type;
2105
- char * bp; /* Pointer to argument */
2106
- char * tp;
2107
- FILEINFO * file;
2108
-
2109
- wrong_line = TRUE; /* In case of error */
2110
- c = skip_ws();
2111
- bp = infile->bptr - 1; /* Remember token to pass to compiler */
2112
- if (c == '\n') {
2113
- if (warn_level & 1)
2114
- cwarn( "No sub-directive", NULL, 0L, NULL); /* _W1_ */
2115
- unget_ch();
2116
- return;
2117
- }
2118
- token_type = scan_token( c, (tp = work_buf, &tp), work_end);
2119
- #if EXPAND_PRAGMA
2120
- if (stdc3 && token_type == NAM
2121
- && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
2122
- DEFBUF * defp;
2123
- char * mp;
2124
- char * mp_end;
2125
- LINE_COL line_col = { 0L, 0};
2126
-
2127
- bp = mp = xmalloc( (size_t)(NMACWORK + IDMAX));
2128
- /* Buffer for macro expansion */
2129
- mp_end = mp + NMACWORK;
2130
- tp = stpcpy( mp, identifier);
2131
- do { /* Expand all the macros in the line */
2132
- int has_pragma;
2133
- if (token_type == NAM && (defp = is_macro( &tp)) != NULL) {
2134
- tp = expand_macro( defp, bp, mp_end, line_col, & has_pragma);
2135
- if (has_pragma)
2136
- cerror( "_Pragma operator found in #pragma line" /* _E_ */
2137
- , NULL, 0L, NULL);
2138
- if (! stdc3 && (warn_level & 2))
2139
- cwarn(
2140
- "\"%s\" is macro expanded in other than C99 mode" /* _W2_ */
2141
- , identifier, 0L, NULL);
2142
- }
2143
- token_type = scan_token( c = get_ch(), (bp = tp, &tp), mp_end);
2144
- } while (c != '\n');
2145
- unget_string( mp, NULL); /* To re-read */
2146
- free( mp);
2147
- c = skip_ws();
2148
- bp = infile->bptr - 1;
2149
- token_type = scan_token( c, (tp = work_buf, &tp), work_end);
2150
- }
2151
- #endif
2152
- if (token_type != NAM) {
2153
- if (warn_level & 1)
2154
- cwarn( not_ident, work_buf, 0L, NULL);
2155
- goto skip_nl;
2156
- } else if (str_eq( identifier, "once")) { /* #pragma once */
2157
- if (! is_junk()) {
2158
- file = infile;
2159
- while (file->fp == NULL)
2160
- file = file->parent;
2161
- do_once( file->full_fname);
2162
- goto skip_nl;
2163
- }
2164
- } else if (str_eq( identifier, "MCPP")) {
2165
- if (scan_token( skip_ws(), (tp = work_buf, &tp), work_end) != NAM) {
2166
- if (warn_level & 1)
2167
- cwarn( not_ident, work_buf, 0L, NULL);
2168
- }
2169
- if (str_eq( identifier, "put_defines")) {
2170
- if (! is_junk())
2171
- dump_def( TRUE, FALSE); /* #pragma MCPP put_defines */
2172
- } else if (str_eq( identifier, "preprocess")) {
2173
- if (! is_junk()) /* #pragma MCPP preprocess */
2174
- mcpp_fputs( "#pragma MCPP preprocessed\n", OUT);
2175
- /* Just putout the directive */
2176
- } else if (str_eq( identifier, "preprocessed")) {
2177
- if (! is_junk()) { /* #pragma MCPP preprocessed*/
2178
- skip_nl();
2179
- do_preprocessed();
2180
- return;
2181
- }
2182
- } else if (str_eq( identifier, "warning")) {
2183
- /* #pragma MCPP warning */
2184
- cwarn( infile->buffer, NULL, 0L, NULL);
2185
- } else if (str_eq( identifier, "push_macro")) {
2186
- push_or_pop( PUSH); /* #pragma MCPP push_macro */
2187
- } else if (str_eq( identifier, "pop_macro")) {
2188
- push_or_pop( POP); /* #pragma MCPP pop_macro */
2189
- } else if (str_eq( identifier, "debug")) {
2190
- do_debug( TRUE); /* #pragma MCPP debug */
2191
- } else if (str_eq( identifier, "end_debug")) {
2192
- do_debug( FALSE); /* #pragma MCPP end_debug */
2193
- } else {
2194
- warn = TRUE;
2195
- }
2196
- if (warn && (warn_level & 1))
2197
- cwarn( unknown_arg, identifier, 0L, NULL);
2198
- goto skip_nl; /* Do not putout the line */
2199
-
2200
- }
2201
-
2202
- if (warn) {
2203
- if (warn_level & 1)
2204
- cwarn( unknown_arg, identifier, 0L, NULL);
2205
- goto skip_nl; /* Do not putout the line */
2206
- }
2207
-
2208
- sharp( NULL, 0); /* Synchronize line number before output */
2209
- if (! no_output) {
2210
- mcpp_fputs( "#pragma ", OUT);
2211
- mcpp_fputs( bp, OUT); /* Line is put out */
2212
- }
2213
- skip_nl: /* Don't use skip_nl() which skips to the newline in source file */
2214
- while (get_ch() != '\n')
2215
- ;
2216
- }
2217
-
2218
- static void do_once(
2219
- const char * fullname /* Full-path-list of the header */
2220
- )
2221
- /*
2222
- * Process #pragma once so as not to re-include the file later.
2223
- * This directive has been imported from GCC V.1.* / cpp as an extension.
2224
- */
2225
- {
2226
- if (once_list == NULL) { /* Should initialize */
2227
- max_once = INIT_NUM_ONCE;
2228
- once_list = (INC_LIST *) xmalloc( sizeof (INC_LIST) * max_once);
2229
- once_end = &once_list[ 0];
2230
- } else if (once_end - once_list >= max_once) {
2231
- /* Double the elements */
2232
- once_list = (INC_LIST *) xrealloc( (void *) once_list
2233
- , sizeof (INC_LIST) * max_once * 2);
2234
- once_end = &once_list[ max_once];
2235
- max_once *= 2;
2236
- }
2237
- once_end->name = (char*)fullname;
2238
- once_end->len = strlen( fullname);
2239
- once_end++;
2240
- }
2241
-
2242
- static int included(
2243
- const char * fullname
2244
- )
2245
- /*
2246
- * Has the file been once included ?
2247
- * This routine is only called from open_file().
2248
- */
2249
- {
2250
- INC_LIST * inc;
2251
- size_t fnamelen;
2252
-
2253
- if (once_list == NULL) /* No once file registered */
2254
- return FALSE;
2255
- fnamelen = strlen( fullname);
2256
- for (inc = once_list; inc < once_end; inc++) {
2257
- if (inc->len == fnamelen && str_case_eq( inc->name, fullname)) {
2258
- /* Already included */
2259
- if (mcpp_debug & PATH)
2260
- mcpp_fprintf( DBG, "Once included \"%s\"\n", fullname);
2261
- return TRUE;
2262
- }
2263
- }
2264
- return FALSE; /* Not yet included */
2265
- }
2266
-
2267
- static void push_or_pop(
2268
- int direction
2269
- )
2270
- /* Process #pragma MCPP push_macro( "MACRO"),
2271
- * #pragma MCPP pop_macro( "MACRO") for other compilers than Visual C,
2272
- * and #pragma push_macro( "MACRO"), #pragma pop_macro( "MACRO") for Visual C.
2273
- * Note:1. "push" count is set in defp->push.
2274
- * 2. pushed definitions are inserted immediatly after the current
2275
- * definition of the same name.
2276
- * 3. the definitions of a same name macro can be pushed multiple times.
2277
- */
2278
- {
2279
- char * tp;
2280
- DEFBUF ** prevp;
2281
- DEFBUF * defp;
2282
- DEFBUF * dp;
2283
- int cmp;
2284
- size_t s_name, s_def;
2285
-
2286
- if (skip_ws() == '('
2287
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == STR
2288
- && skip_ws() == ')') { /* Correct syntax */
2289
-
2290
- if (is_junk())
2291
- return;
2292
- s_name = strlen( work_buf) - 2;
2293
- *(work_buf + s_name + 1) = '\0';
2294
- memcpy( identifier, work_buf + 1, s_name + 1);
2295
- /* Remove enclosing '"' */
2296
- prevp = look_prev( identifier, &cmp);
2297
- if (cmp == 0) { /* Current definition or pushed definition exists */
2298
- defp = *prevp;
2299
- if (direction == PUSH) {/* #pragma push_macro( "MACRO") */
2300
- if (defp->push) { /* No current definition*/
2301
- if (warn_level & 1)
2302
- cwarn( "\"%s\" is already pushed" /* _W1_ */
2303
- , identifier, 0L, NULL);
2304
- return;
2305
- }
2306
- /* Else the current definition exists. Push it */
2307
- s_def = sizeof (DEFBUF) + 3 + s_name
2308
- + strlen( defp->repl) + strlen( defp->fname);
2309
- s_def += strlen( defp->parmnames);
2310
- dp = (DEFBUF *) xmalloc( s_def);
2311
- memcpy( dp, defp, s_def); /* Copy the definition */
2312
- dp->link = *prevp; /* Insert to linked-list*/
2313
- *prevp = dp; /* the pushed def */
2314
- prevp = &dp->link; /* Next link to search */
2315
- } else { /* #pragma pop_macro( "MACRO") */
2316
- if (defp->push == 0) { /* Current definition */
2317
- if (defp->link == NULL
2318
- || ! str_eq( identifier, defp->link->name)) {
2319
- if (warn_level & 1)
2320
- cwarn( "\"%s\" has not been pushed" /* _W1_ */
2321
- , identifier, 0L, NULL);
2322
- return;
2323
- } else {
2324
- *prevp = defp->link;
2325
- /* Link the previous and the next */
2326
- free( defp);
2327
- /* Delete the definition to enable popped def */
2328
- }
2329
- } /* Else no current definition exists */
2330
- }
2331
- while ((defp = *prevp) != NULL) {
2332
- /* Increment or decrement "push" count of all pushed defs */
2333
- if ((cmp = memcmp( defp->name, identifier, s_name)) > 0)
2334
- break;
2335
- defp->push += direction; /* Increment or decrement */
2336
- prevp = &defp->link;
2337
- }
2338
- } else { /* No current definition nor pushed definition */
2339
- if (warn_level & 1)
2340
- cwarn( "\"%s\" has not been defined" /* _W1_ */
2341
- , identifier, 0L, NULL);
2342
- }
2343
- } else { /* Wrong syntax */
2344
- if (warn_level & 1)
2345
- cwarn( "Bad %s syntax", direction == PUSH /* _W1_ */
2346
- ? "push_macro" : "pop_macro", 0L, NULL);
2347
- }
2348
- }
2349
-
2350
-
2351
- void do_old( void)
2352
- /*
2353
- * Process the out-of-standard directives.
2354
- * GCC permits #include_next and #warning even in STANDARD mode.
2355
- */
2356
- {
2357
- static const char * const unknown
2358
- = "Unknown #directive \"%s\"%.0ld%s"; /* _E_ _W8_ */
2359
-
2360
- if (compiling) {
2361
- cerror( unknown, identifier, 0L, NULL);
2362
- } else if (warn_level & 8) {
2363
- cwarn( unknown, identifier, 0L, " (in skipped block)");
2364
- }
2365
- skip_nl();
2366
- unget_ch();
2367
- return;
2368
- }
2369
-
2370
- static void do_preprocessed( void)
2371
- /*
2372
- * The source file has been already preprocessed.
2373
- * Copy the lines to output.
2374
- * Install macros according the #define directives.
2375
- */
2376
- {
2377
- const char * corrupted =
2378
- "This preprocessed file is corrupted"; /* _F_ */
2379
- FILEINFO * file;
2380
- char * lbuf;
2381
- char * cp;
2382
- const char ** incptr;
2383
- char * comment = NULL;
2384
- char * colon = NULL;
2385
- const char * dir;
2386
- #if STD_LINE_PREFIX == FALSE
2387
- char conv[ NBUFF];
2388
- char * arg;
2389
-
2390
- /*
2391
- * Compiler cannot accept C source style #line.
2392
- * Convert it to the compiler-specific format.
2393
- */
2394
- strcpy( conv, LINE_PREFIX);
2395
- arg = conv + strlen( conv);
2396
- #endif
2397
- file = infile;
2398
- lbuf = file->bptr = file->buffer; /* Reset file->bptr */
2399
-
2400
- /* Copy the input to output until a comment line appears. */
2401
- while (fgets( lbuf, NBUFF, file->fp) != NULL
2402
- && memcmp( lbuf, "/*", 2) != 0) {
2403
- #if STD_LINE_PREFIX == FALSE
2404
- if (memcmp( lbuf, "#line ", 6) == 0) {
2405
- strcpy( arg, lbuf + 6);
2406
- mcpp_fputs( conv, OUT);
2407
- } else
2408
- #endif
2409
- {
2410
- mcpp_fputs( lbuf, OUT);
2411
- }
2412
- }
2413
- if (! str_eq( lbuf, "/* Currently defined macros. */\n"))
2414
- cfatal( "This is not a preprocessed source" /* _F_ */
2415
- , NULL, 0L, NULL);
2416
-
2417
- /* Define macros according to the #define lines. */
2418
- while (fgets( lbuf, NWORK, file->fp) != NULL) {
2419
- if (memcmp( lbuf, "/*", 2) == 0) {
2420
- /* Standard predefined macro */
2421
- continue;
2422
- }
2423
- if (memcmp( lbuf, "#define ", 8) != 0) {
2424
- if (memcmp( lbuf, "#line", 5) == 0)
2425
- continue;
2426
- else
2427
- cfatal( corrupted, NULL, 0L, NULL);
2428
- }
2429
- /* Filename and line-number information in comment as: */
2430
- /* dir/fname:1234\t*/
2431
- cp = lbuf + strlen( lbuf);
2432
- if ((memcmp( cp - 4, "\t*/\n", 4) != 0)
2433
- || (*(cp - 4) = EOS
2434
- , (comment = strrchr( lbuf, '*')) == NULL)
2435
- || (memcmp( --comment, "/* ", 3) != 0)
2436
- || ((colon = strrchr( comment, ':')) == NULL))
2437
- cfatal( corrupted, NULL, 0L, NULL);
2438
- src_line = atol( colon + 1); /* Pseudo line number */
2439
- *colon = EOS;
2440
- dir = comment + 3;
2441
- inc_dirp = &null;
2442
- /* Search the include directory list */
2443
- for (incptr = incdir ; incptr < incend; incptr++) {
2444
- if (memcmp( *incptr, dir, strlen( *incptr)) == 0) {
2445
- inc_dirp = incptr;
2446
- break;
2447
- }
2448
- }
2449
- /* Register the filename to fnamelist[] */
2450
- /* inc_dirp may be NULL, and cur_fname may be "(predefined)" */
2451
- cur_fname = set_fname( dir + strlen( *inc_dirp));
2452
- strcpy( comment - 2, "\n"); /* Remove the comment */
2453
- unget_string( lbuf + 8, NULL);
2454
- do_define( FALSE, 0);
2455
- get_ch(); /* '\n' */
2456
- get_ch(); /* Clear the "file" */
2457
- unget_ch(); /* infile == file */
2458
- }
2459
- file->bptr = file->buffer + strlen( file->buffer);
2460
- }
2461
-
2462
- static int do_debug(
2463
- int set /* TRUE to set debugging */
2464
- )
2465
- /*
2466
- * #pragma MCPP debug, #pragma MCPP end_debug, #debug, #end_debug
2467
- * Return TRUE when diagnostic is issued else return FALSE.
2468
- */
2469
- {
2470
- struct Debug_arg {
2471
- const char * arg_name; /* Name of option */
2472
- int arg_num; /* Value of 'debug' */
2473
- };
2474
- static struct Debug_arg debug_args[] = {
2475
- { "path", PATH },
2476
- { "token", TOKEN },
2477
- { "expand", EXPAND },
2478
- { "macro_call", MACRO_CALL }, /* Implemented only in STD mode */
2479
- { "if", IF },
2480
- { "expression", EXPRESSION },
2481
- { "getc", GETC },
2482
- { "memory", MEMORY },
2483
- { NULL, 0 },
2484
- };
2485
- struct Debug_arg *argp;
2486
- int num;
2487
- int c;
2488
-
2489
- c = skip_ws();
2490
- if (c == '\n') {
2491
- unget_ch();
2492
- if (set) {
2493
- if (warn_level & 1)
2494
- cwarn( "No argument", NULL, 0L, NULL); /* _W1_ */
2495
- return TRUE;
2496
- } else {
2497
- mcpp_debug = 0; /* Clear all the flags */
2498
- return FALSE;
2499
- }
2500
- }
2501
- while (scan_token( c, (workp = work_buf, &workp), work_end) == NAM) {
2502
- argp = debug_args;
2503
- while (argp->arg_name) {
2504
- if (str_eq( argp->arg_name, work_buf))
2505
- break;
2506
- argp++;
2507
- }
2508
- if (argp->arg_name == NULL) {
2509
- if (warn_level & 1)
2510
- cwarn( unknown_arg, work_buf, 0L, NULL);
2511
- goto diagnosed;
2512
- } else {
2513
- num = argp->arg_num;
2514
- if (set) {
2515
- mcpp_debug |= num;
2516
- if (num == PATH)
2517
- dump_path();
2518
- else if (num == MEMORY)
2519
- print_heap();
2520
- else if (num == MACRO_CALL)
2521
- // option_flags.k = TRUE; /* This pragma needs this mode */
2522
- ;
2523
- } else {
2524
- mcpp_debug &= ~num;
2525
- }
2526
- }
2527
- c = skip_ws();
2528
- }
2529
- if (c != '\n') {
2530
- if (warn_level & 1) {
2531
- if (c != '\n') {
2532
- cwarn( not_ident, work_buf, 0L, NULL);
2533
- } else {
2534
- cwarn( unknown_arg, work_buf, 0L, NULL);
2535
- mcpp_debug &= ~num; /* Disable */
2536
- }
2537
- }
2538
- skip_nl();
2539
- unget_ch();
2540
- goto diagnosed;
2541
- }
2542
- unget_ch();
2543
- return FALSE;
2544
- diagnosed:
2545
- return TRUE;
2546
- }
2547
-
2548
- static void dump_path( void)
2549
- /*
2550
- * Show the include directories.
2551
- */
2552
- {
2553
- const char ** incptr;
2554
- const char * inc_dir;
2555
- const char * dir = "./";
2556
-
2557
- mcpp_fputs( "Include paths are as follows --\n", DBG);
2558
- for (incptr = incdir; incptr < incend; incptr++) {
2559
- inc_dir = *incptr;
2560
- if (*inc_dir == '\0')
2561
- inc_dir = dir;
2562
- mcpp_fprintf( DBG, " %s\n", inc_dir);
2563
- }
2564
- mcpp_fputs( "End of include path list.\n", DBG);
2565
- }
2566
-
2567
- /*
2568
- * Note: The getopt() of glibc should not be used since the specification
2569
- * differs from the standard one.
2570
- * Use this mcpp_getopt() for mcpp.
2571
- */
2572
-
2573
- /* Based on the public-domain-software released by AT&T in 1985. */
2574
-
2575
- #define OPTERR( s, c) if (mcpp_opterr) { \
2576
- mcpp_fputs( argv[0], ERR); \
2577
- mcpp_fputs( s, ERR); \
2578
- mcpp_fputc( c, ERR); \
2579
- mcpp_fputc( '\n', ERR); \
2580
- }
2581
-
2582
- static int mcpp_getopt(
2583
- int argc,
2584
- char * const * argv,
2585
- const char * opts
2586
- )
2587
- /*
2588
- * Get the next option (and it's argument) from the command line.
2589
- */
2590
- {
2591
- const char * const error1 = ": option requires an argument --";
2592
- const char * const error2 = ": illegal option --";
2593
- static int sp = 1;
2594
- int c;
2595
- const char * cp;
2596
-
2597
- if (sp == 1) {
2598
- if (argc <= mcpp_optind ||
2599
- argv[ mcpp_optind][ 0] != '-'
2600
- || argv[ mcpp_optind][ 1] == '\0') {
2601
- return EOF;
2602
- } else if (strcmp( argv[ mcpp_optind], "--") == 0) {
2603
- mcpp_optind++;
2604
- return EOF;
2605
- }
2606
- }
2607
- /* mcpp_optopt = c = (unsigned char) argv[ mcpp_optind][ sp]; */
2608
- mcpp_optopt = c = argv[ mcpp_optind][ sp] & UCHARMAX;
2609
- if (c == ':' || (cp = strchr( opts, c)) == NULL) {
2610
- OPTERR( error2, c)
2611
- if (argv[ mcpp_optind][ ++sp] == '\0') {
2612
- mcpp_optind++;
2613
- sp = 1;
2614
- }
2615
- return '?';
2616
- }
2617
- if (*++cp == ':') {
2618
- if (argv[ mcpp_optind][ sp+1] != '\0') {
2619
- mcpp_optarg = &argv[ mcpp_optind++][ sp+1];
2620
- } else if (argc <= ++mcpp_optind) {
2621
- OPTERR( error1, c)
2622
- sp = 1;
2623
- return '?';
2624
- } else {
2625
- mcpp_optarg = argv[ mcpp_optind++];
2626
- }
2627
- sp = 1;
2628
- } else {
2629
- if (argv[ mcpp_optind][ ++sp] == '\0') {
2630
- sp = 1;
2631
- mcpp_optind++;
2632
- }
2633
- mcpp_optarg = NULL;
2634
- }
2635
- return c;
2636
- }
2637
-
2638
- #if ! HOST_HAVE_STPCPY
2639
- char * stpcpy(
2640
- char * dest,
2641
- const char * src
2642
- )
2643
- /*
2644
- * Copy the string and return the advanced pointer.
2645
- */
2646
- {
2647
- const char * s;
2648
- char * d;
2649
-
2650
- for (s = src, d = dest; (*d++ = *s++) != '\0'; )
2651
- ;
2652
- return d - 1;
2653
- }
2654
- #endif
2655
-
2656
- /*
2657
- * list_heap() is a function to print out information of heap-memory.
2658
- * See "kmmalloc-2.5.3.zip" by kmatsui.
2659
- */
2660
- #if KMMALLOC
2661
- int list_heap( int);
2662
- #elif BSD_MALLOC
2663
- int list_heap( char *);
2664
- #elif DB_MALLOC || DMALLOC
2665
- int list_heap( FILE *);
2666
- #endif
2667
-
2668
- void print_heap( void)
2669
- {
2670
- #if KMMALLOC
2671
- list_heap( 1);
2672
- #elif BSD_MALLOC
2673
- list_heap( ":cpp");
2674
- #elif DB_MALLOC || DMALLOC || PHK_MALLOC || DLMALLOC
2675
- list_heap( fp_debug);
2676
- #endif
2677
- }
2678
-
2679
- void at_end( void)
2680
- /*
2681
- * Handle the commands to be executed at the end of processing.
2682
- */
2683
- {
2684
- }
2685
-
2686
- void clear_filelist( void)
2687
- /*
2688
- * Free malloced memory for filename-list and directory-list.
2689
- */
2690
- {
2691
- const char ** incp;
2692
- INC_LIST * namep;
2693
-
2694
- for (incp = incdir; incp < incend; incp++)
2695
- free( (void *) *incp);
2696
- free( (void *) incdir);
2697
- for (namep = fnamelist; namep < fname_end; namep++)
2698
- free( (void *) namep->name);
2699
- free( (void *) fnamelist);
2700
- free( (void *) once_list);
2701
- }
2702
-
2703
- #ifdef _WIN32
2704
- # include <Windows.h>
2705
- #endif
2706
-
2707
- FILE* mcpp_fopen(const char* filename, const char* mode)
2708
- {
2709
- #ifdef _WIN32
2710
- FILE* f = 0;
2711
- if(filename && mode)
2712
- {
2713
- int wfilenameLength = strlen(filename) + 1;
2714
- wchar_t* wfilename = malloc(wfilenameLength * sizeof(wchar_t));
2715
- if(wfilename)
2716
- {
2717
- if(MultiByteToWideChar(CP_UTF8, 0, filename, -1, wfilename, wfilenameLength))
2718
- {
2719
- int wmodeLength = strlen(mode) + 1;
2720
- wchar_t* wmode = malloc(wmodeLength * sizeof(wchar_t));
2721
- if(wmode)
2722
- {
2723
- if(MultiByteToWideChar(CP_UTF8, 0, mode, -1, wmode, wmodeLength))
2724
- {
2725
- _wfopen_s(&f, wfilename, wmode);
2726
- }
2727
- free(wmode);
2728
- }
2729
- }
2730
- free(wfilename);
2731
- }
2732
- }
2733
- return f;
2734
- #else
2735
- return fopen(filename, mode);
2736
- #endif
2737
- }