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
@@ -0,0 +1,1985 @@
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 U P P O R T . C
32
+ * S u p p o r t R o u t i n e s
33
+ *
34
+ * The common routines used by several source files are placed here.
35
+ */
36
+
37
+ /*
38
+ * The following are global functions.
39
+ *
40
+ * get_unexpandable() Gets the next unexpandable token in the line, expanding
41
+ * macros.
42
+ * Called from #if, #line and #include processing routines.
43
+ * skip_nl() Skips over a line.
44
+ * skip_ws() Skips over white spaces but not skip over the end of the line.
45
+ * skip_ws() skips also COM_SEP and TOK_SEP.
46
+ * scan_token() Reads the next token of any type into the specified output
47
+ * pointer, advances the pointer, returns the type of token.
48
+ * scan_quote() Reads a string literal, character constant or header-name from
49
+ * the input stream, writes out to the specified buffer and
50
+ * returns the advanced output pointer.
51
+ * get_ch() Reads the next byte from the current input stream, handling
52
+ * end of (macro/file) input and embedded comments appropriately.
53
+ * unget_ch() Pushs last gotten character back on the input stream.
54
+ * unget_string() Pushs sequence on the input stream.
55
+ * save_string() Saves a string in malloc() memory.
56
+ * get_file() Initializes a new FILEINFO structure, called when #include
57
+ * opens a new file, or from unget_string().
58
+ * xmalloc() Gets a specified number of bytes from heap memory.
59
+ * If malloc() returns NULL, exits with a message.
60
+ * xrealloc() realloc(). If it fails, exits with a message.
61
+ * get_src_location() Trace back line-column datum into pre-line-splicing
62
+ * phase. A function for -K option.
63
+ * cfatal(), cerror(), cwarn()
64
+ * These routines format print messages to the user.
65
+ * mcpp_fputc(), mcpp_fputs(), mcpp_fprintf()
66
+ * Wrap library functions to support alternate output to memory
67
+ * buffer.
68
+ */
69
+
70
+ #include "system.H"
71
+ #include "internal.H"
72
+
73
+ static void scan_id( int c);
74
+ /* Scan an identifier */
75
+ static char * scan_number( int c, char * out, char * out_end);
76
+ /* Scan a preprocessing number */
77
+ static char * scan_op( int c, char * out);
78
+ /* Scan an operator or a punctuator */
79
+ static char * parse_line( void);
80
+ /* Parse a logical line and convert comments */
81
+ static char * read_a_comment( char * sp, size_t * sizp);
82
+ /* Read over a comment */
83
+ static char * get_line( int in_comment);
84
+ /* Get a logical line from file, handle line-splicing */
85
+ static char * at_eof( int in_comment);
86
+ /* Check erroneous end of file */
87
+ static void do_msg( const char * severity, const char * format
88
+ , const char * arg1, long arg2, const char * arg3);
89
+ /* Putout diagnostic message */
90
+ static void dump_token( int token_type, const char * cp);
91
+ /* Dump a token and its type */
92
+
93
+ #define EXP_MAC_IND_MAX 16
94
+ /* Information of current expanding macros for diagnostic */
95
+ static struct {
96
+ const char * name; /* Name of the macro just expanded */
97
+ int to_be_freed; /* Name should be freed later */
98
+ } expanding_macro[ EXP_MAC_IND_MAX];
99
+ static int exp_mac_ind = 0; /* Index into expanding_macro[] */
100
+
101
+ static int in_token = FALSE; /* For token scanning functions */
102
+ static int in_string = FALSE; /* For get_ch() and parse_line()*/
103
+ static int squeezews = FALSE;
104
+
105
+ #define MAX_CAT_LINE 256
106
+ /* Information on line catenated by <backslash><newline> */
107
+ /* and by line-crossing comment. This is for -K option. */
108
+ typedef struct catenated_line {
109
+ long start_line; /* Starting line of catenation */
110
+ long last_line; /* Ending line of catanation */
111
+ size_t len[ MAX_CAT_LINE + 1];
112
+ /* Length of successively catenated lines */
113
+ } CAT_LINE;
114
+ static CAT_LINE bsl_cat_line;
115
+ /* Datum on the last catenated line by <backslash><newline> */
116
+ static CAT_LINE com_cat_line;
117
+ /* Datum on the last catenated line by a line-crossing comment */
118
+
119
+ static int use_mem_buffers = FALSE;
120
+
121
+ void init_support( void)
122
+ {
123
+ in_token = in_string = squeezews = FALSE;
124
+ bsl_cat_line.len[ 0] = com_cat_line.len[ 0] = 0;
125
+ clear_exp_mac();
126
+ }
127
+
128
+ typedef struct mem_buf {
129
+ char * buffer;
130
+ char * entry_pt;
131
+ size_t size;
132
+ size_t bytes_avail;
133
+ } MEMBUF;
134
+
135
+ static MEMBUF mem_buffers[ NUM_OUTDEST];
136
+
137
+ void mcpp_use_mem_buffers(
138
+ int tf
139
+ )
140
+ {
141
+ int i;
142
+
143
+ use_mem_buffers = tf ? TRUE : FALSE;
144
+
145
+ for (i = 0; i < NUM_OUTDEST; ++i) {
146
+ if (mem_buffers[ i].buffer)
147
+ /* Free previously allocated memory buffer */
148
+ free( mem_buffers[ i].buffer);
149
+ if (use_mem_buffers) {
150
+ /* Output to memory buffers instead of files */
151
+ mem_buffers[ i].buffer = NULL;
152
+ mem_buffers[ i].entry_pt = NULL;
153
+ mem_buffers[ i].size = 0;
154
+ mem_buffers[ i].bytes_avail = 0;
155
+ }
156
+ }
157
+ }
158
+
159
+ #define BUF_INCR_SIZE (NWORK * 2)
160
+ #define MAX( a, b) (((a) > (b)) ? (a) : (b))
161
+
162
+ static char * append_to_buffer(
163
+ MEMBUF * mem_buf_p,
164
+ const char * string,
165
+ size_t length
166
+ )
167
+ {
168
+ if (mem_buf_p->bytes_avail < length + 1) { /* Need to allocate more memory */
169
+ size_t size = MAX( BUF_INCR_SIZE, length);
170
+
171
+ if (mem_buf_p->buffer == NULL) { /* 1st append */
172
+ mem_buf_p->size = size;
173
+ mem_buf_p->bytes_avail = size;
174
+ mem_buf_p->buffer = xmalloc( mem_buf_p->size);
175
+ mem_buf_p->entry_pt = mem_buf_p->buffer;
176
+ } else {
177
+ mem_buf_p->size += size;
178
+ mem_buf_p->bytes_avail += size;
179
+ mem_buf_p->buffer = xrealloc( mem_buf_p->buffer, mem_buf_p->size);
180
+ mem_buf_p->entry_pt = mem_buf_p->buffer + mem_buf_p->size
181
+ - mem_buf_p->bytes_avail;
182
+ }
183
+ }
184
+
185
+ /* Append the string to the tail of the buffer */
186
+ memcpy( mem_buf_p->entry_pt, string, length);
187
+ mem_buf_p->entry_pt += length;
188
+ mem_buf_p->entry_pt[ 0] = '\0'; /* Terminate the string buffer */
189
+ mem_buf_p->bytes_avail -= length;
190
+
191
+ return mem_buf_p->buffer;
192
+ }
193
+
194
+ static int mem_putc(
195
+ int c,
196
+ OUTDEST od
197
+ )
198
+ {
199
+ char string[ 1];
200
+
201
+ string[ 0] = (char) c;
202
+
203
+ if (append_to_buffer( &(mem_buffers[ od]), string, 1) != NULL)
204
+ return 0;
205
+ else
206
+ return !0;
207
+ }
208
+
209
+ static int mem_puts(
210
+ const char * s,
211
+ OUTDEST od
212
+ )
213
+ {
214
+ if (append_to_buffer( &(mem_buffers[od]), s, strlen(s)) != NULL)
215
+ return 0;
216
+ else
217
+ return !0;
218
+ }
219
+
220
+ char * mcpp_get_mem_buffer(
221
+ OUTDEST od
222
+ )
223
+ {
224
+ return mem_buffers[ od].buffer;
225
+ }
226
+
227
+
228
+ #define DEST2FP(od) \
229
+ (od == OUT) ? fp_out : \
230
+ ((od == ERR) ? fp_err : \
231
+ ((od == DBG) ? fp_debug : \
232
+ (NULL)))
233
+
234
+ /*
235
+ * The following mcpp_*() wrapper functions are intended to centralize
236
+ * the output generated by MCPP. They support memory buffer alternates to
237
+ * each of the primary output streams: out, err, debug. The memory buffer
238
+ * output option would be used in a setup where MCPP has been built as a
239
+ * function call - i.e. mcpp_lib_main().
240
+ */
241
+
242
+ int mcpp_lib_fputc(
243
+ int c,
244
+ OUTDEST od
245
+ )
246
+ {
247
+ if (use_mem_buffers) {
248
+ return mem_putc( c, od);
249
+ } else {
250
+ FILE * stream = DEST2FP( od);
251
+
252
+ return (stream != NULL) ? fputc( c, stream) : EOF;
253
+ }
254
+ }
255
+
256
+ int (* mcpp_fputc)( int c, OUTDEST od) = mcpp_lib_fputc;
257
+
258
+ int mcpp_lib_fputs(
259
+ const char * s,
260
+ OUTDEST od
261
+ )
262
+ {
263
+ if (use_mem_buffers) {
264
+ return mem_puts( s, od);
265
+ } else {
266
+ FILE * stream = DEST2FP( od);
267
+
268
+ return (stream != NULL) ? fputs( s, stream) : EOF;
269
+ }
270
+ }
271
+
272
+ int (* mcpp_fputs)( const char * s, OUTDEST od) = mcpp_lib_fputs;
273
+
274
+ #include <stdarg.h>
275
+
276
+ int mcpp_lib_fprintf(
277
+ OUTDEST od,
278
+ const char * format,
279
+ ...
280
+ )
281
+ {
282
+ va_list ap;
283
+ FILE * stream = DEST2FP( od);
284
+
285
+ if (stream != NULL) {
286
+ int rc;
287
+
288
+ va_start( ap, format);
289
+ if (use_mem_buffers) {
290
+ static char mem_buffer[ NWORK];
291
+
292
+ rc = vsprintf( mem_buffer, format, ap);
293
+
294
+ if (rc != 0) {
295
+ rc = mem_puts( mem_buffer, od);
296
+ }
297
+ } else {
298
+ rc = vfprintf( stream, format, ap);
299
+ }
300
+ va_end( ap);
301
+
302
+ return rc;
303
+
304
+ } else {
305
+ return EOF;
306
+ }
307
+ }
308
+
309
+ int (* mcpp_fprintf)( OUTDEST od, const char * format, ...) = mcpp_lib_fprintf;
310
+
311
+ void mcpp_reset_def_out_func( void)
312
+ {
313
+ mcpp_fputc = mcpp_lib_fputc;
314
+ mcpp_fputs = mcpp_lib_fputs;
315
+ mcpp_fprintf = mcpp_lib_fprintf;
316
+ }
317
+
318
+ void mcpp_set_out_func(
319
+ int (* func_fputc)( int c, OUTDEST od),
320
+ int (* func_fputs)( const char * s, OUTDEST od),
321
+ int (* func_fprintf)( OUTDEST od, const char * format, ...)
322
+ )
323
+ {
324
+ mcpp_fputc = func_fputc;
325
+ mcpp_fputs = func_fputs;
326
+ mcpp_fprintf = func_fprintf;
327
+ }
328
+
329
+ int get_unexpandable(
330
+ int c, /* First char of token */
331
+ int diag /* Flag of diagnosis */
332
+ )
333
+ /*
334
+ * Get the next unexpandable token in the line, expanding macros.
335
+ * Return the token type. The token is written in work_buf[].
336
+ * The once expanded macro is never expanded again.
337
+ * Called only from the routines processing #if (#elif, #assert), #line and
338
+ * #include directives in order to diagnose some subtle macro expansions.
339
+ */
340
+ {
341
+ DEFBUF * defp = NULL;
342
+ FILEINFO * file;
343
+ FILE * fp = NULL;
344
+ LINE_COL line_col = { 0L, 0};
345
+ int token_type = NO_TOKEN;
346
+ int has_pragma;
347
+
348
+ while (c != EOS && c != '\n' /* In a line */
349
+ && (fp = infile->fp /* Preserve current state */
350
+ , (token_type
351
+ = scan_token( c, (workp = work_buf, &workp), work_end))
352
+ == NAM) /* Identifier */
353
+ && fp != NULL /* In source ! */
354
+ && (defp = is_macro( NULL)) != NULL) { /* Macro */
355
+ expand_macro( defp, work_buf, work_end, line_col, & has_pragma);
356
+ /* Expand macro */
357
+ if (has_pragma)
358
+ cerror( "_Pragma operator found in directive line" /* _E_ */
359
+ , NULL, 0L, NULL);
360
+ file = unget_string( work_buf, defp->name); /* Stack to re-read */
361
+ c = skip_ws(); /* Skip TOK_SEP */
362
+ if (file != infile && macro_line != MACRO_ERROR && (warn_level & 1)) {
363
+ /* This diagnostic is issued even if "diag" is FALSE. */
364
+ cwarn( "Macro \"%s\" is expanded to 0 token" /* _W1_ */
365
+ , defp->name, 0L, NULL);
366
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
367
+ }
368
+ }
369
+
370
+ if (c == '\n' || c == EOS) {
371
+ unget_ch();
372
+ return NO_TOKEN;
373
+ }
374
+
375
+ if (diag && fp == NULL && defp && (warn_level & 1)) {
376
+ char tmp[ NWORK + 16];
377
+ char * tmp_end = tmp + NWORK;
378
+ char * tmp_p;
379
+ file = unget_string( infile->buffer, defp->name); /* To diagnose */
380
+ c = get_ch();
381
+ while (file == infile) { /* Search the expanded macro */
382
+ if (scan_token( c, (tmp_p = tmp, &tmp_p), tmp_end) != NAM) {
383
+ c = get_ch();
384
+ continue;
385
+ }
386
+ if (str_eq( identifier, "defined")) {
387
+ cwarn( "Macro \"%s\" is expanded to \"defined\"" /* _W1_ */
388
+ , defp->name, 0L, NULL);
389
+ break;
390
+ }
391
+ c = get_ch();
392
+ }
393
+ if (file == infile) {
394
+ infile->bptr += strlen( infile->bptr);
395
+ get_ch();
396
+ }
397
+ unget_ch();
398
+ if (token_type == OPE) {
399
+ unget_string( work_buf, NULL); /* Set again 'openum' */
400
+ scan_token( get_ch(), (workp = work_buf, &workp), work_end);
401
+ }
402
+ }
403
+
404
+ return token_type;
405
+ }
406
+
407
+ void skip_nl( void)
408
+ /*
409
+ * Skip to the end of the current input line.
410
+ */
411
+ {
412
+ insert_sep = NO_SEP;
413
+ while (infile && infile->fp == NULL) { /* Stacked text */
414
+ infile->bptr += strlen( infile->bptr);
415
+ get_ch(); /* To the parent */
416
+ }
417
+ if (infile)
418
+ infile->bptr += strlen( infile->bptr); /* Source line */
419
+ }
420
+
421
+ int skip_ws( void)
422
+ /*
423
+ * Skip over horizontal whitespaces.
424
+ */
425
+ {
426
+ int c;
427
+
428
+ do {
429
+ c = get_ch();
430
+ } while (char_type[ c] & HSP);
431
+
432
+ return c;
433
+ }
434
+
435
+ #define MBMASK 0xFF /* Mask to hide multibyte char */
436
+
437
+ int scan_token(
438
+ int c, /* The first character of the token */
439
+ char ** out_pp, /* Pointer to pointer to output buf */
440
+ char * out_end /* End of output buffer */
441
+ )
442
+ /*
443
+ * Scan the next token of any type.
444
+ * The token is written out to the specified buffer and the output pointer
445
+ * is advanced. Token is terminated by EOS. Return the type of token.
446
+ * If the token is an identifier, the token is also in identifier[].
447
+ * If the token is a operator or punctuator, return OPE.
448
+ * If 'c' is token separator, then return SEP.
449
+ * If 'c' is not the first character of any known token and not a token
450
+ * separator, return SPE.
451
+ * In POST_STD mode, inserts token separator (a space) between any tokens of
452
+ * source.
453
+ */
454
+ {
455
+ char * out = *out_pp; /* Output pointer */
456
+ int ch_type; /* Type of character */
457
+ int token_type = 0; /* Type of token */
458
+ int ch;
459
+
460
+ in_token = TRUE; /* While a token is scanned */
461
+ c = c & UCHARMAX;
462
+ ch_type = char_type[ c] & MBMASK;
463
+
464
+ switch (ch_type) {
465
+ case LET: /* Probably an identifier */
466
+ switch (c) {
467
+ case 'L':
468
+ ch = get_ch();
469
+ if (char_type[ ch] & QUO) { /* char_type[ ch] == QUO */
470
+ if (ch == '"')
471
+ token_type = WSTR; /* Wide-char string literal */
472
+ else
473
+ token_type = WCHR; /* Wide-char constant */
474
+ c = ch;
475
+ *out++ = 'L';
476
+ break; /* Fall down to "case QUO:" */
477
+ } else {
478
+ unget_ch();
479
+ } /* Fall through */
480
+ default: /* An identifier */
481
+ scan_id( c);
482
+ out = stpcpy( out, identifier);
483
+ token_type = NAM;
484
+ break;
485
+ }
486
+ if (token_type == NAM)
487
+ break;
488
+ /* Else fall through -- i.e. WSTR, WCHR */
489
+ case QUO: /* String or character constant */
490
+ out = scan_quote( c, out, out_end, FALSE);
491
+ if (token_type == 0) { /* Without prefix L */
492
+ if (c == '"')
493
+ token_type = STR;
494
+ else
495
+ token_type = CHR;
496
+ } /* Else WSTR or WCHR */
497
+ break;
498
+ case DOT:
499
+ ch = get_ch();
500
+ unget_ch();
501
+ if ((char_type[ ch] & DIG) == 0) /* Operator '.' or '...' */
502
+ goto operat;
503
+ /* Else fall through */
504
+ case DIG: /* Preprocessing number */
505
+ out = scan_number( c, out, out_end);
506
+ token_type = NUM;
507
+ break;
508
+ case PUNC:
509
+ operat: out = scan_op( c, out); /* Operator or punctuator */
510
+ token_type = OPE; /* Number is set in global "openum" */
511
+ break;
512
+ default: /* Special tokens or special characters */
513
+ if (((c == CAT || c == ST_QUOTE)) || (char_type[ c] & SPA))
514
+ token_type = SEP; /* Token separator or magic char*/
515
+ else
516
+ token_type = SPE;
517
+ /* Unkown token ($, @, multi-byte character or Latin */
518
+ *out++ = c;
519
+ *out = EOS;
520
+ break;
521
+ }
522
+
523
+ if (out_end < out)
524
+ cfatal( "Buffer overflow scanning token \"%s\"" /* _F_ */
525
+ , *out_pp, 0L, NULL);
526
+ if (mcpp_debug & TOKEN)
527
+ dump_token( token_type, *out_pp);
528
+ *out_pp = out;
529
+
530
+ in_token = FALSE; /* Token scanning has been done */
531
+ return token_type;
532
+ }
533
+
534
+ static void scan_id(
535
+ int c /* First char of id */
536
+ )
537
+ /*
538
+ * Reads the next identifier and put it into identifier[].
539
+ * The caller has already read the first character of the identifier.
540
+ */
541
+ {
542
+ static char * const limit = &identifier[ IDMAX];
543
+ size_t len; /* Length of identifier */
544
+ char * bp = identifier;
545
+
546
+ if (c == IN_SRC) { /* Magic character */
547
+ *bp++ = c;
548
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
549
+ *bp++ = get_ch(); /* Its 2-bytes */
550
+ *bp++ = get_ch(); /* argument */
551
+ }
552
+ c = get_ch();
553
+ }
554
+
555
+ do {
556
+ if (bp < limit)
557
+ *bp++ = c;
558
+
559
+ c = get_ch();
560
+ } while ((char_type[ c] & (LET | DIG)) /* Letter or digit */
561
+ );
562
+
563
+ unget_ch();
564
+ *bp = EOS;
565
+
566
+ if (bp >= limit && (warn_level & 1)) /* Limit of token */
567
+ cwarn( "Too long identifier truncated to \"%s\"" /* _W1_ */
568
+ , identifier, 0L, NULL);
569
+
570
+ len = bp - identifier;
571
+ #if IDMAX > IDLEN90MIN
572
+ /* UCN16, UCN32, MBCHAR are counted as one character for each. */
573
+ if (infile->fp && len > std_limits.id_len && (warn_level & 4))
574
+ cwarn( "Identifier longer than %.0s%ld characters \"%s\"" /* _W4_ */
575
+ , NULL, (long) std_limits.id_len, identifier);
576
+ #endif /* IDMAX > IDLEN90MIN */
577
+ }
578
+
579
+ char * scan_quote(
580
+ int delim, /* ', " or < (header-name) */
581
+ char * out, /* Output buffer */
582
+ char * out_end, /* End of output buffer */
583
+ int diag /* Diagnostic should be output */
584
+ )
585
+ /*
586
+ * Scan off a string literal or character constant to the output buffer.
587
+ * Report diagnosis if the quotation is terminated by newline or character
588
+ * constant is empty (provided 'diag' is TRUE).
589
+ * Return the next output pointer or NULL (on error).
590
+ */
591
+ {
592
+ const char * const skip_line = ", skipped the line"; /* _E_ */
593
+ const char * const unterm_string
594
+ = "Unterminated string literal%s";
595
+ const char * const unterm_char
596
+ = "Unterminated character constant%s";
597
+ const char * const empty_const
598
+ = "Empty character constant%s";
599
+ const char * skip;
600
+ size_t len;
601
+ int c;
602
+ char * out_p = out;
603
+
604
+ /* Set again in case of called from routines other than scan_token(). */
605
+ in_token = TRUE;
606
+ *out_p++ = delim;
607
+ if (delim == '<')
608
+ delim = '>';
609
+
610
+ while ((c = get_ch()) != EOS) {
611
+
612
+ #if MBCHAR
613
+ if (char_type[ c] & mbchk) {
614
+ /* First of multi-byte character (or shift-sequence) */
615
+ char * bptr = infile->bptr;
616
+ len = mb_read( c, &infile->bptr, (*out_p++ = c, &out_p));
617
+ if (len & MB_ERROR) {
618
+ if (infile->fp != NULL && compiling && diag) {
619
+ if (warn_level & 1) {
620
+ char * buf;
621
+ size_t chlen;
622
+ buf = xmalloc( chlen = infile->bptr - bptr + 2);
623
+ memcpy( buf, bptr, chlen - 1);
624
+ buf[ chlen - 1] = EOS;
625
+ cwarn(
626
+ "Illegal multi-byte character sequence \"%s\" in quotation", /* _W1_ */
627
+ buf, 0L, NULL);
628
+ free( buf);
629
+ }
630
+ }
631
+ continue;
632
+ } else { /* Valid multi-byte character (or sequence) */
633
+ goto chk_limit;
634
+ }
635
+ }
636
+ #endif
637
+ if (c == delim) {
638
+ break;
639
+ } else if (c == '\\' && delim != '>') { /* In string literal */
640
+ *out_p++ = c; /* Escape sequence */
641
+ c = get_ch();
642
+ #if MBCHAR
643
+ if (char_type[ c] & mbchk) {
644
+ /* '\\' followed by multi-byte char */
645
+ unget_ch();
646
+ continue;
647
+ }
648
+ #endif
649
+ } else if (c == '\n') {
650
+ break;
651
+ }
652
+ if (diag && iscntrl( c) && ((char_type[ c] & SPA) == 0)
653
+ && (warn_level & 1))
654
+ cwarn(
655
+ "Illegal control character %.0s0x%02lx in quotation" /* _W1_ */
656
+ , NULL, (long) c, NULL);
657
+ *out_p++ = c;
658
+ chk_limit:
659
+ if (out_end < out_p) {
660
+ *out_end = EOS;
661
+ cfatal( "Too long quotation", NULL, 0L, NULL); /* _F_ */
662
+ }
663
+ }
664
+
665
+ if (c == '\n' || c == EOS)
666
+ unget_ch();
667
+ if (c == delim)
668
+ *out_p++ = delim;
669
+ *out_p = EOS;
670
+ if (diag) { /* At translation phase 3 */
671
+ skip = (infile->fp == NULL) ? NULL : skip_line;
672
+ if (c != delim) {
673
+ if (delim == '"') {
674
+ cerror( unterm_string, skip, 0L, NULL); /* _E_ */
675
+ } else if (delim == '\'') {
676
+ cerror( unterm_char, skip, 0L, NULL); /* _E_ */
677
+ } else {
678
+ cerror( "Unterminated header name %s%.0ld%s" /* _E_ */
679
+ , out, 0L, skip);
680
+ }
681
+ out_p = NULL;
682
+ } else if (delim == '\'' && out_p - out <= 2) {
683
+ cerror( empty_const, skip, 0L, NULL); /* _E_ */
684
+ out_p = NULL;
685
+ goto done;
686
+ }
687
+ #if NWORK-2 > SLEN90MIN
688
+ if (out_p - out > std_limits.str_len && (warn_level & 4))
689
+ cwarn( "Quotation longer than %.0s%ld bytes" /* _W4_ */
690
+ , NULL, std_limits.str_len, NULL);
691
+ #endif
692
+ }
693
+
694
+ done:
695
+ in_token = FALSE;
696
+ return out_p;
697
+ }
698
+
699
+ static char * scan_number(
700
+ int c, /* First char of number */
701
+ char * out, /* Output buffer */
702
+ char * out_end /* Limit of output buffer */
703
+ )
704
+ /*
705
+ * Read a preprocessing number.
706
+ * By scan_token() we know already that the first c is from 0 to 9 or dot,
707
+ * and if c is dot then the second character is digit.
708
+ * Returns the advanced output pointer.
709
+ * Note: preprocessing number permits non-numeric forms such as 3E+xy,
710
+ * which are used in stringization or token-concatenation.
711
+ */
712
+ {
713
+ char * out_p = out; /* Current output pointer */
714
+
715
+ do {
716
+ *out_p++ = c;
717
+ if (c == 'E' || c == 'e' /* Sign should follow 'E', 'e', */
718
+ ) {
719
+ c = get_ch();
720
+ if (c == '+' || c == '-') {
721
+ *out_p++ = c;
722
+ c = get_ch();
723
+ }
724
+ } else {
725
+ c = get_ch();
726
+ }
727
+ } while ((char_type[ c] & (DIG | DOT | LET)) /* Digit, dot or letter */
728
+ );
729
+
730
+ *out_p = EOS;
731
+ if (out_end < out_p)
732
+ cfatal( "Too long pp-number token \"%s\"" /* _F_ */
733
+ , out, 0L, NULL);
734
+ unget_ch();
735
+ return out_p;
736
+ }
737
+
738
+ static char * scan_op(
739
+ int c, /* First char of the token */
740
+ char * out /* Output buffer */
741
+ )
742
+ /*
743
+ * Scan C operator or punctuator into the specified buffer.
744
+ * Return the advanced output pointer.
745
+ * The code-number of the operator is stored to global variable 'openum'.
746
+ * Note: '#' is not an operator nor a punctuator in other than directive line,
747
+ * nevertheless is handled as a punctuator in this cpp for convenience.
748
+ */
749
+ {
750
+ int c2, c3;
751
+
752
+ *out++ = c;
753
+
754
+ switch (c) {
755
+ case '~': openum = OP_COM; break;
756
+ case '(': openum = OP_LPA; break;
757
+ case ')': openum = OP_RPA; break;
758
+ case '?': openum = OP_QUE; break;
759
+ case ';': case '[': case ']': case '{':
760
+ case '}': case ',':
761
+ openum = OP_1;
762
+ break;
763
+ default:
764
+ openum = OP_2; /* Tentative guess */
765
+ }
766
+
767
+ if (openum != OP_2) { /* Single byte operators */
768
+ *out = EOS;
769
+ return out;
770
+ }
771
+
772
+ c2 = get_ch(); /* Possibly two bytes ops */
773
+ *out++ = c2;
774
+
775
+ switch (c) {
776
+ case '=':
777
+ openum = ((c2 == '=') ? OP_EQ : OP_1); /* ==, = */
778
+ break;
779
+ case '!':
780
+ openum = ((c2 == '=') ? OP_NE : OP_NOT); /* !=, ! */
781
+ break;
782
+ case '&':
783
+ switch (c2) {
784
+ case '&': openum = OP_ANA; break; /* && */
785
+ case '=': /* openum = OP_2; */ break; /* &= */
786
+ default : openum = OP_AND; break; /* & */
787
+ }
788
+ break;
789
+ case '|':
790
+ switch (c2) {
791
+ case '|': openum = OP_ORO; break; /* || */
792
+ case '=': /* openum = OP_2; */ break; /* |= */
793
+ default : openum = OP_OR; break; /* | */
794
+ }
795
+ break;
796
+ case '<':
797
+ switch (c2) {
798
+ case '<': c3 = get_ch();
799
+ if (c3 == '=') {
800
+ openum = OP_3; /* <<= */
801
+ *out++ = c3;
802
+ } else {
803
+ openum = OP_SL; /* << */
804
+ unget_ch();
805
+ }
806
+ break;
807
+ case '=': openum = OP_LE; break; /* <= */
808
+ case ':': /* <: i.e. [ */
809
+ openum = OP_LT;
810
+ break;
811
+ case '%': /* <% i.e. { */
812
+ openum = OP_LT;
813
+ break;
814
+ default : openum = OP_LT; break; /* < */
815
+ }
816
+ break;
817
+ case '>':
818
+ switch (c2) {
819
+ case '>': c3 = get_ch();
820
+ if (c3 == '=') {
821
+ openum = OP_3; /* >>= */
822
+ *out++ = c3;
823
+ } else {
824
+ openum = OP_SR; /* >> */
825
+ unget_ch();
826
+ }
827
+ break;
828
+ case '=': openum = OP_GE; break; /* >= */
829
+ default : openum = OP_GT; break; /* > */
830
+ }
831
+ break;
832
+ case '#':
833
+ if ((in_define || macro_line)) /* in #define or macro */
834
+ openum = ((c2 == '#') ? OP_CAT : OP_STR); /* ##, # */
835
+ else
836
+ openum = OP_1; /* # */
837
+ break;
838
+ case '+':
839
+ switch (c2) {
840
+ case '+': /* ++ */
841
+ case '=': /* openum = OP_2; */ break; /* += */
842
+ default : openum = OP_ADD; break; /* + */
843
+ }
844
+ break;
845
+ case '-':
846
+ switch (c2) {
847
+ case '-': /* -- */
848
+ case '=': /* -= */
849
+ /* openum = OP_2; */
850
+ break;
851
+ case '>':
852
+ /* else openum = OP_2; */ /* -> */
853
+ /* else openum = OP_2; */
854
+ break;
855
+ default : openum = OP_SUB; break; /* - */
856
+ }
857
+ break;
858
+ case '%':
859
+ switch (c2) {
860
+ case '=': break; /* %= */
861
+ case '>': /* %> i.e. } */
862
+ openum = OP_MOD;
863
+ break;
864
+ case ':':
865
+ openum = OP_MOD;
866
+ break;
867
+ default : openum = OP_MOD; break; /* % */
868
+ }
869
+ break;
870
+ case '*':
871
+ if (c2 != '=') /* * */
872
+ openum = OP_MUL;
873
+ /* else openum = OP_2; */ /* *= */
874
+ break;
875
+ case '/':
876
+ if (c2 != '=') /* / */
877
+ openum = OP_DIV;
878
+ /* else openum = OP_2; */ /* /= */
879
+ break;
880
+ case '^':
881
+ if (c2 != '=') /* ^ */
882
+ openum = OP_XOR;
883
+ /* else openum = OP_2; */ /* ^= */
884
+ break;
885
+ case '.':
886
+ if (c2 == '.') {
887
+ c3 = get_ch();
888
+ if (c3 == '.') {
889
+ openum = OP_ELL; /* ... */
890
+ *out++ = c3;
891
+ break;
892
+ } else {
893
+ unget_ch();
894
+ openum = OP_1;
895
+ }
896
+ } else { /* . */
897
+ openum = OP_1;
898
+ }
899
+ break;
900
+ case ':':
901
+ openum = OP_COL;
902
+ break;
903
+ default: /* Never reach here */
904
+ cfatal( "Bug: Punctuator is mis-implemented %.0s0lx%x" /* _F_ */
905
+ , NULL, (long) c, NULL);
906
+ openum = OP_1;
907
+ break;
908
+ }
909
+
910
+ switch (openum) {
911
+ case OP_STR:
912
+ if (c == '%') break; /* %: */
913
+ case OP_1:
914
+ case OP_NOT: case OP_AND: case OP_OR: case OP_LT:
915
+ case OP_GT: case OP_ADD: case OP_SUB: case OP_MOD:
916
+ case OP_MUL: case OP_DIV: case OP_XOR: case OP_COM:
917
+ case OP_COL: /* Any single byte operator or punctuator */
918
+ unget_ch();
919
+ out--;
920
+ break;
921
+ default: /* Two or more bytes operators or punctuators */
922
+ break;
923
+ }
924
+
925
+ *out = EOS;
926
+ return out;
927
+ }
928
+
929
+ void expanding(
930
+ const char * name, /* The name of (nested) macro just expanded. */
931
+ int to_be_freed /* The name should be freed later. */
932
+ )
933
+ /*
934
+ * Remember used macro name for diagnostic.
935
+ */
936
+ {
937
+ if (exp_mac_ind < EXP_MAC_IND_MAX - 1) {
938
+ exp_mac_ind++;
939
+ } else {
940
+ clear_exp_mac();
941
+ exp_mac_ind++;
942
+ }
943
+ expanding_macro[ exp_mac_ind].name = name;
944
+ expanding_macro[ exp_mac_ind].to_be_freed = to_be_freed;
945
+ }
946
+
947
+ void clear_exp_mac( void)
948
+ /*
949
+ * Initialize expanding_macro[] freeing names registered in
950
+ * name_to_be_freed[].
951
+ */
952
+ {
953
+ int i;
954
+
955
+ for (i = 1; i < EXP_MAC_IND_MAX; i++) {
956
+ if (expanding_macro[ i].to_be_freed) {
957
+ free( (void *) expanding_macro[ i].name);
958
+ expanding_macro[ i].to_be_freed = FALSE;
959
+ }
960
+ }
961
+ exp_mac_ind = 0;
962
+ }
963
+
964
+ int get_ch( void)
965
+ /*
966
+ * Return the next character from a macro or the current file.
967
+ * Always return the value representable by unsigned char.
968
+ */
969
+ {
970
+ int len;
971
+ int c;
972
+ FILEINFO * file;
973
+
974
+ /*
975
+ * 'in_token' is set to TRUE while scan_token() is executed (and
976
+ * scan_id(), scan_quote(), scan_number(), scan_ucn() and scan_op()
977
+ * via scan_token()) in Standard mode to simplify tokenization.
978
+ * Any token cannot cross "file"s.
979
+ */
980
+ if (in_token)
981
+ return (*infile->bptr++ & UCHARMAX);
982
+
983
+ if ((file = infile) == NULL)
984
+ return CHAR_EOF; /* End of all input */
985
+
986
+ if (mcpp_debug & GETC) {
987
+ mcpp_fprintf( DBG, "get_ch(%s) '%c' line %ld, bptr = %d, buffer"
988
+ , file->fp ? cur_fullname : file->real_fname ? file->real_fname
989
+ : file->filename ? file->filename : "NULL"
990
+ , *file->bptr & UCHARMAX
991
+ , src_line, (int) (file->bptr - file->buffer));
992
+ dump_string( NULL, file->buffer);
993
+ dump_unget( "get entrance");
994
+ }
995
+
996
+ /*
997
+ * Read a character from the current input logical line or macro.
998
+ * At EOS, either finish the current macro (freeing temporary storage)
999
+ * or get another logical line by parse_line().
1000
+ * At EOF, exit the current file (#included) or, at EOF from the MCPP input
1001
+ * file, return CHAR_EOF to finish processing.
1002
+ * The character is converted to int with no sign-extension.
1003
+ */
1004
+ if ((c = (*file->bptr++ & UCHARMAX)) != EOS) {
1005
+ return c; /* Just a character */
1006
+ }
1007
+
1008
+ /*
1009
+ * Nothing in current line or macro. Get next line (if input from a
1010
+ * file), or do end of file/macro processing, and reenter get_ch() to
1011
+ * restart from the top.
1012
+ */
1013
+ if (file->fp && /* In source file */
1014
+ parse_line() != NULL) /* Get line from file */
1015
+ return get_ch();
1016
+ /*
1017
+ * Free up space used by the (finished) file or macro and restart
1018
+ * input from the parent file/macro, if any.
1019
+ */
1020
+ infile = file->parent; /* Unwind file chain */
1021
+ free( file->buffer); /* Free buffer */
1022
+ if (infile == NULL) { /* If at end of input */
1023
+ free( file->filename);
1024
+ free( file->src_dir);
1025
+ free( file); /* full_fname is the same with filename for main file*/
1026
+ return CHAR_EOF; /* Return end of file */
1027
+ }
1028
+ if (file->fp) { /* Source file included */
1029
+ free( file->filename); /* Free filename */
1030
+ free( file->src_dir); /* Free src_dir */
1031
+ fclose( file->fp); /* Close finished file */
1032
+ /* Do not free file->real_fname and file->full_fname */
1033
+ cur_fullname = infile->full_fname;
1034
+ cur_fname = infile->real_fname; /* Restore current fname*/
1035
+ if (infile->pos != 0L) { /* Includer was closed */
1036
+ infile->fp = mcpp_fopen( cur_fullname, "r");
1037
+ fseek( infile->fp, infile->pos, SEEK_SET);
1038
+ } /* Re-open the includer and restore the file-position */
1039
+ len = (int) (infile->bptr - infile->buffer);
1040
+ infile->buffer = xrealloc( infile->buffer, NBUFF);
1041
+ /* Restore full size buffer to get the next line */
1042
+ infile->bptr = infile->buffer + len;
1043
+ src_line = infile->line; /* Reset line number */
1044
+ inc_dirp = infile->dirp; /* Includer's directory */
1045
+ mcpp_set_out_func( infile->last_fputc, infile->last_fputs,
1046
+ infile->last_fprintf);
1047
+ include_nest--;
1048
+ src_line++; /* Next line to #include*/
1049
+ sharp( NULL, infile->include_opt ? 1 : (file->include_opt ? 0 : 2));
1050
+ /* Need a #line now. Marker depends on include_opt. */
1051
+ /* The file of include_opt should be marked as 1. */
1052
+ /* Else if returned from include_opt file, it is the */
1053
+ /* main input file, and should not be marked. */
1054
+ /* Else, it is normal includer file, and marked as 2. */
1055
+ src_line--;
1056
+ newlines = 0; /* Clear the blank lines*/
1057
+ if (mcpp_debug & MACRO_CALL) /* Should be re-initialized */
1058
+ com_cat_line.last_line = bsl_cat_line.last_line = 0L;
1059
+ } else if (file->filename) { /* Expanding macro */
1060
+ if (macro_name) /* file->filename should be freed later */
1061
+ expanding( file->filename, TRUE);
1062
+ else
1063
+ free( file->filename);
1064
+ }
1065
+ free( file); /* Free file space */
1066
+ return get_ch(); /* Get from the parent */
1067
+ }
1068
+
1069
+ static char * parse_line( void)
1070
+ /*
1071
+ * ANSI (ISO) C: translation phase 3.
1072
+ * Parse a logical line.
1073
+ * Check illegal control characters.
1074
+ * Check unterminated string literal, character constant or comment.
1075
+ * Convert each comment to one space (or spaces of the comment length on
1076
+ * 'keep_spaces' mode)..
1077
+ * Squeeze succeding white spaces other than <newline> (including comments) to
1078
+ * one space (unless keep_spaces == TRUE).
1079
+ * The lines might be spliced by comments which cross the lines.
1080
+ */
1081
+ {
1082
+ char * temp; /* Temporary buffer */
1083
+ char * limit; /* Buffer end */
1084
+ char * tp; /* Current pointer into temporary buffer */
1085
+ char * sp; /* Pointer into input buffer */
1086
+ size_t com_size;
1087
+ int c;
1088
+
1089
+ if ((sp = get_line( FALSE)) == NULL) /* Next logical line */
1090
+ return NULL; /* End of a file */
1091
+ tp = temp = xmalloc( (size_t) NBUFF);
1092
+ limit = temp + NBUFF - 2;
1093
+
1094
+ while (char_type[ c = *sp++ & UCHARMAX] & HSP) {
1095
+ /* Preserve line top horizontal white spaces */
1096
+ /* as they are for human-readability */
1097
+ *tp++ = c;
1098
+ }
1099
+ sp--;
1100
+
1101
+ while ((c = *sp++ & UCHARMAX) != '\n') {
1102
+
1103
+ switch (c) {
1104
+ case '/':
1105
+ switch (*sp++) {
1106
+ case '*': /* Start of a comment */
1107
+ if ((sp = read_a_comment( sp, &com_size)) == NULL) {
1108
+ free( temp); /* End of file with un- */
1109
+ return NULL; /* terminated comment */
1110
+ }
1111
+ if (temp == tp ||
1112
+ ! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
1113
+ *tp++ = ' '; /* Squeeze white spaces */
1114
+ break;
1115
+ case '/': /* // */
1116
+ /* Comment when C++ or __STDC_VERSION__ >= 199901L */
1117
+ /* Need not to convert to a space because '\n' follows */
1118
+ if ((warn_level & 2))
1119
+ cwarn( "Parsed \"//\" as comment" /* _W2_ */
1120
+ , NULL, 0L, NULL);
1121
+ if (keep_comments) {
1122
+ sp -= 2;
1123
+ while (*sp != '\n') /* Until end of line */
1124
+ mcpp_fputc( *sp++, OUT);
1125
+ mcpp_fputc( '\n', OUT);
1126
+ wrong_line = TRUE;
1127
+ }
1128
+ goto end_line;
1129
+ default: /* Not a comment */
1130
+ *tp++ = '/';
1131
+ sp--; /* To re-read */
1132
+ break;
1133
+ }
1134
+ break;
1135
+ case '\r': /* Vertical white spaces*/
1136
+ /* Note that [CR+LF] is already converted to [LF]. */
1137
+ case '\f':
1138
+ case '\v':
1139
+ if (warn_level & 4)
1140
+ cwarn( "Converted %.0s0x%02lx to a space" /* _W4_ */
1141
+ , NULL, (long) c, NULL);
1142
+ case '\t': /* Horizontal space */
1143
+ case ' ':
1144
+ if (! (char_type[ *(tp - 1) & UCHARMAX] & HSP)) {
1145
+ *tp++ = ' '; /* Squeeze white spaces */
1146
+ }
1147
+ break;
1148
+ case '"': /* String literal */
1149
+ case '\'': /* Character constant */
1150
+ infile->bptr = sp;
1151
+ tp = scan_quote( c, tp, limit, TRUE);
1152
+ if (tp == NULL) {
1153
+ free( temp); /* Unbalanced quotation */
1154
+ return parse_line(); /* Skip the line */
1155
+ }
1156
+ sp = infile->bptr;
1157
+ break;
1158
+ default:
1159
+ if (iscntrl( c)) {
1160
+ cerror( /* Skip the control character */
1161
+ "Illegal control character %.0s0x%02lx, skipped the character" /* _E_ */
1162
+ , NULL, (long) c, NULL);
1163
+ } else { /* Any valid character */
1164
+ *tp++ = c;
1165
+ }
1166
+ break;
1167
+ }
1168
+
1169
+ if (limit < tp) {
1170
+ *tp = EOS;
1171
+ cfatal( "Too long line spliced by comments" /* _F_ */
1172
+ , NULL, 0L, NULL);
1173
+ }
1174
+ }
1175
+
1176
+ end_line:
1177
+ if (temp < tp && (char_type[ *(tp - 1) & UCHARMAX] & HSP))
1178
+ tp--; /* Remove trailing white space */
1179
+ *tp++ = '\n';
1180
+ *tp = EOS;
1181
+ infile->bptr = strcpy( infile->buffer, temp); /* Write back to buffer */
1182
+ free( temp);
1183
+ if (macro_line != 0 && macro_line != MACRO_ERROR) { /* Expanding macro */
1184
+ temp = infile->buffer;
1185
+ while (char_type[ *temp & UCHARMAX] & HSP)
1186
+ temp++;
1187
+ if (*temp == '#' /* This line starts with # token */
1188
+ || (*temp == '%' && *(temp + 1) == ':'))
1189
+ if (warn_level & 1)
1190
+ cwarn(
1191
+ "Macro started at line %.0s%ld swallowed directive-like line" /* _W1_ */
1192
+ , NULL, macro_line, NULL);
1193
+ }
1194
+ return infile->buffer;
1195
+ }
1196
+
1197
+ static char * read_a_comment(
1198
+ char * sp, /* Source */
1199
+ size_t * sizp /* Size of the comment */
1200
+ )
1201
+ /*
1202
+ * Read over a comment (which may cross the lines).
1203
+ */
1204
+ {
1205
+ int c;
1206
+ char * saved_sp;
1207
+ int cat_line = 0; /* Number of catenated lines */
1208
+
1209
+ if (keep_comments) /* If writing comments */
1210
+ mcpp_fputs( "/*", OUT); /* Write the initializer*/
1211
+ c = *sp++;
1212
+
1213
+ while (1) { /* Eat a comment */
1214
+ if (keep_comments)
1215
+ mcpp_fputc( c, OUT);
1216
+
1217
+ switch (c) {
1218
+ case '/':
1219
+ if ((c = *sp++) != '*') /* Don't let comments */
1220
+ continue; /* nest. */
1221
+ if (warn_level & 1)
1222
+ cwarn( "\"/*\" within comment", NULL, 0L, NULL); /* _W1_ */
1223
+ if (keep_comments)
1224
+ mcpp_fputc( c, OUT);
1225
+ /* Fall into * stuff */
1226
+ case '*':
1227
+ if ((c = *sp++) != '/') /* If comment doesn't */
1228
+ continue; /* end, look at next. */
1229
+ if (keep_comments) { /* Put out comment */
1230
+ mcpp_fputc( c, OUT); /* terminator, too. */
1231
+ mcpp_fputc( '\n', OUT); /* Append '\n' to avoid */
1232
+ /* trouble on some other tools such as rpcgen. */
1233
+ wrong_line = TRUE;
1234
+ }
1235
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
1236
+ if (cat_line) {
1237
+ cat_line++;
1238
+ com_cat_line.len[ cat_line] /* Catenated length */
1239
+ = com_cat_line.len[ cat_line - 1]
1240
+ + strlen( infile->buffer) - 1;
1241
+ /* '-1' for '\n' */
1242
+ com_cat_line.last_line = src_line;
1243
+ }
1244
+ }
1245
+ return sp; /* End of comment */
1246
+ case '\n': /* Line-crossing comment*/
1247
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
1248
+ /* Save location informations */
1249
+ if (cat_line == 0) /* First line of catenation */
1250
+ com_cat_line.start_line = src_line;
1251
+ if (cat_line >= MAX_CAT_LINE - 1) {
1252
+ *sizp = 0; /* Discard the too long comment */
1253
+ cat_line = 0;
1254
+ if (warn_level & 4)
1255
+ cwarn(
1256
+ "Too long comment, discarded up to here" /* _W4_ */
1257
+ , NULL, 0L, NULL);
1258
+ }
1259
+ cat_line++;
1260
+ com_cat_line.len[ cat_line]
1261
+ = com_cat_line.len[ cat_line - 1]
1262
+ + strlen( infile->buffer) - 1;
1263
+ }
1264
+ if ((saved_sp = sp = get_line( TRUE)) == NULL)
1265
+ return NULL; /* End of file within comment */
1266
+ /* Never happen, because at_eof() supplement closing*/
1267
+ wrong_line = TRUE; /* We'll need a #line later */
1268
+ break;
1269
+ default: /* Anything else is */
1270
+ break; /* just a character */
1271
+ } /* End switch */
1272
+
1273
+ c = *sp++;
1274
+ } /* End comment loop */
1275
+
1276
+ return sp; /* Never reach here */
1277
+ }
1278
+
1279
+ static char * mcpp_fgets(
1280
+ char * s,
1281
+ int size,
1282
+ FILE * stream
1283
+ )
1284
+ {
1285
+ return fgets( s, size, stream);
1286
+ }
1287
+
1288
+ static char * get_line(
1289
+ int in_comment
1290
+ )
1291
+ /*
1292
+ * ANSI (ISO) C: translation phase 1, 2.
1293
+ * Get the next logical line from source file.
1294
+ * Convert [CR+LF] to [LF].
1295
+ */
1296
+ {
1297
+ #define cr_warn_level 1
1298
+ static int cr_converted;
1299
+ int converted = FALSE;
1300
+ int len; /* Line length - alpha */
1301
+ char * ptr;
1302
+ int cat_line = 0; /* Number of catenated lines */
1303
+
1304
+ if (infile == NULL) /* End of a source file */
1305
+ return NULL;
1306
+ ptr = infile->bptr = infile->buffer;
1307
+ if ((mcpp_debug & MACRO_CALL) && src_line == 0) /* Initialize */
1308
+ com_cat_line.last_line = bsl_cat_line.last_line = 0L;
1309
+
1310
+ while (mcpp_fgets( ptr, (int) (infile->buffer + NBUFF - ptr), infile->fp)
1311
+ != NULL) {
1312
+ /* Translation phase 1 */
1313
+ src_line++; /* Gotten next physical line */
1314
+ if (src_line == std_limits.line_num + 1
1315
+ && (warn_level & 1))
1316
+ cwarn( "Line number %.0s\"%ld\" got beyond range" /* _W1_ */
1317
+ , NULL, src_line, NULL);
1318
+ if (mcpp_debug & (TOKEN | GETC)) { /* Dump it to DBG */
1319
+ mcpp_fprintf( DBG, "\n#line %ld (%s)", src_line, cur_fullname);
1320
+ dump_string( NULL, ptr);
1321
+ }
1322
+ len = strlen( ptr);
1323
+ if (NBUFF - 1 <= ptr - infile->buffer + len
1324
+ && *(ptr + len - 1) != '\n') {
1325
+ /* The line does not yet end, though the buffer is full. */
1326
+ if (NBUFF - 1 <= len)
1327
+ cfatal( "Too long source line" /* _F_ */
1328
+ , NULL, 0L, NULL);
1329
+ else
1330
+ cfatal( "Too long logical line" /* _F_ */
1331
+ , NULL, 0L, NULL);
1332
+ }
1333
+ if (*(ptr + len - 1) != '\n') /* Unterminated source line */
1334
+ break;
1335
+ if (len >= 2 && *(ptr + len - 2) == '\r') { /* [CR+LF] */
1336
+ *(ptr + len - 2) = '\n';
1337
+ *(ptr + --len) = EOS;
1338
+ if (! cr_converted && (warn_level & cr_warn_level)) {
1339
+ cwarn( "Converted [CR+LF] to [LF]" /* _W1_ _W2_ */
1340
+ , NULL, 0L, NULL);
1341
+ cr_converted = TRUE;
1342
+ }
1343
+ }
1344
+ if (converted)
1345
+ len = strlen( ptr);
1346
+ /* Translation phase 2 */
1347
+ len -= 2;
1348
+ if (len >= 0) {
1349
+ if (*(ptr + len) == '\\') {
1350
+ /* <backslash><newline> (not MBCHAR) */
1351
+ ptr = infile->bptr += len; /* Splice the lines */
1352
+ wrong_line = TRUE;
1353
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
1354
+ /* Save location informations */
1355
+ if (cat_line == 0) /* First line of catenation */
1356
+ bsl_cat_line.start_line = src_line;
1357
+ if (cat_line < MAX_CAT_LINE)
1358
+ /* Record the catenated length */
1359
+ bsl_cat_line.len[ ++cat_line]
1360
+ = strlen( infile->buffer) - 2;
1361
+ /* Else ignore */
1362
+ }
1363
+ continue;
1364
+ }
1365
+ }
1366
+ #if NBUFF-2 > SLEN90MIN
1367
+ if (ptr - infile->buffer + len + 2 > std_limits.str_len + 1
1368
+ && (warn_level & 4)) /* +1 for '\n' */
1369
+ cwarn( "Logical source line longer than %.0s%ld bytes" /* _W4_ */
1370
+ , NULL, std_limits.str_len, NULL);
1371
+ #endif
1372
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
1373
+ if (cat_line && cat_line < MAX_CAT_LINE) {
1374
+ bsl_cat_line.len[ ++cat_line] = strlen( infile->buffer) - 1;
1375
+ /* Catenated length: '-1' for '\n' */
1376
+ bsl_cat_line.last_line = src_line;
1377
+ }
1378
+ }
1379
+ return infile->bptr = infile->buffer; /* Logical line */
1380
+ }
1381
+
1382
+ /* End of a (possibly included) source file */
1383
+ if (ferror( infile->fp))
1384
+ cfatal( "File read error", NULL, 0L, NULL); /* _F_ */
1385
+ if ((ptr = at_eof( in_comment)) != NULL) /* Check at end of file */
1386
+ return ptr; /* Partial line supplemented */
1387
+ return NULL;
1388
+ }
1389
+
1390
+ static char * at_eof(
1391
+ int in_comment
1392
+ )
1393
+ /*
1394
+ * Check the partial line, unterminated comment, unbalanced #if block,
1395
+ * uncompleted macro call at end of a file or at end of input.
1396
+ * Supplement the line terminator, if possible.
1397
+ * Return the supplemented line or NULL on unrecoverable error.
1398
+ */
1399
+ {
1400
+ const char * const format
1401
+ = "End of %s with %.0ld%s"; /* _E_ _W1_ */
1402
+ const char * const unterm_if_format
1403
+ = "End of %s within #if (#ifdef) section started at line %ld"; /* _E_ _W1_ */
1404
+ const char * const unterm_macro_format
1405
+ = "End of %s within macro call started at line %ld";/* _E_ _W1_ */
1406
+ const char * const input
1407
+ = infile->parent ? "file" : "input"; /* _E_ _W1_ */
1408
+ const char * const no_newline
1409
+ = "no newline, supplemented newline"; /* _W1_ */
1410
+ const char * const unterm_com
1411
+ = "unterminated comment, terminated the comment"; /* _W1_ */
1412
+ const char * const backsl = "\\, deleted the \\"; /* _W1_ */
1413
+ size_t len;
1414
+ char * cp;
1415
+
1416
+ cp = infile->buffer;
1417
+ len = strlen( cp);
1418
+ if (len && *(cp += (len - 1)) != '\n') {
1419
+ *++cp = '\n'; /* Supplement <newline> */
1420
+ *++cp = EOS;
1421
+ if ((warn_level & 1))
1422
+ cwarn( format, input, 0L, no_newline);
1423
+ return infile->bptr = infile->buffer;
1424
+ }
1425
+ if (infile->buffer < infile->bptr) {
1426
+ /* No line after <backslash><newline> */
1427
+ cp = infile->bptr;
1428
+ *cp++ = '\n'; /* Delete the \\ */
1429
+ *cp = EOS;
1430
+ if (warn_level & 1)
1431
+ cwarn( format, input, 0L, backsl);
1432
+ return infile->bptr = infile->buffer;
1433
+ }
1434
+ if (in_comment) { /* End of file within a comment */
1435
+ if ((warn_level & 1))
1436
+ cwarn( format, input, 0L, unterm_com);
1437
+ /* The partial comment line has been already read by */
1438
+ /* read_a_comment(), so supplement the next line. */
1439
+ strcpy( infile->buffer, "*/\n");
1440
+ return infile->bptr = infile->buffer;
1441
+ }
1442
+
1443
+ if (infile->initif < ifptr) {
1444
+ IFINFO * ifp = infile->initif + 1;
1445
+ cerror( unterm_if_format, input, ifp->ifline, NULL);
1446
+ ifptr = infile->initif; /* Clear information of */
1447
+ compiling = ifptr->stat; /* erroneous grouping */
1448
+ }
1449
+
1450
+ if (macro_line != 0 && macro_line != MACRO_ERROR
1451
+ && in_getarg) {
1452
+ cerror( unterm_macro_format, input, macro_line, NULL);
1453
+ macro_line = MACRO_ERROR;
1454
+ }
1455
+
1456
+ return NULL;
1457
+ }
1458
+
1459
+ void unget_ch( void)
1460
+ /*
1461
+ * Back the pointer to reread the last character. Fatal error (code bug)
1462
+ * if we back too far. unget_ch() may be called, without problems, at end of
1463
+ * file. Only one character may be ungotten. If you need to unget more,
1464
+ * call unget_string().
1465
+ */
1466
+ {
1467
+ if (in_token) {
1468
+ infile->bptr--;
1469
+ return;
1470
+ }
1471
+
1472
+ if (infile != NULL) {
1473
+ --infile->bptr;
1474
+ if (infile->bptr < infile->buffer) /* Shouldn't happen */
1475
+ cfatal( "Bug: Too much pushback", NULL, 0L, NULL); /* _F_ */
1476
+ }
1477
+
1478
+ if (mcpp_debug & GETC)
1479
+ dump_unget( "after unget");
1480
+ }
1481
+
1482
+ FILEINFO * unget_string(
1483
+ const char * text, /* Text to unget */
1484
+ const char * name /* Name of the macro, if any*/
1485
+ )
1486
+ /*
1487
+ * Push a string back on the input stream. This is done by treating
1488
+ * the text as if it were a macro or a file.
1489
+ */
1490
+ {
1491
+ FILEINFO * file;
1492
+ size_t size;
1493
+
1494
+ if (text)
1495
+ size = strlen( text) + 1;
1496
+ else
1497
+ size = 1;
1498
+ file = get_file( name, NULL, NULL, size, FALSE);
1499
+ if (text)
1500
+ memcpy( file->buffer, text, size);
1501
+ else
1502
+ *file->buffer = EOS;
1503
+ return file;
1504
+ }
1505
+
1506
+ char * save_string(
1507
+ const char * text
1508
+ )
1509
+ /*
1510
+ * Store a string into free memory.
1511
+ */
1512
+ {
1513
+ char * result;
1514
+ size_t size;
1515
+
1516
+ size = strlen( text) + 1;
1517
+ result = xmalloc( size);
1518
+ memcpy( result, text, size);
1519
+ return result;
1520
+ }
1521
+
1522
+ FILEINFO * get_file(
1523
+ const char * name, /* File or macro name */
1524
+ const char * src_dir, /* Source file directory*/
1525
+ const char * fullname, /* Full path list */
1526
+ size_t bufsize, /* Line buffer size */
1527
+ int include_opt /* Specified by -include opt (for GCC) */
1528
+ )
1529
+ /*
1530
+ * Common FILEINFO buffer initialization for a new file or macro.
1531
+ */
1532
+ {
1533
+ FILEINFO * file;
1534
+
1535
+ file = (FILEINFO *) xmalloc( sizeof (FILEINFO));
1536
+ file->buffer = xmalloc( bufsize);
1537
+ file->bptr = file->buffer; /* Initialize line ptr */
1538
+ file->buffer[ 0] = EOS; /* Force first read */
1539
+ file->line = 0L; /* (Not used just yet) */
1540
+ file->fp = NULL; /* No file yet */
1541
+ file->pos = 0L; /* No pos to remember */
1542
+ file->parent = infile; /* Chain files together */
1543
+ file->initif = ifptr; /* Initial ifstack */
1544
+ file->include_opt = include_opt; /* Specified by -include*/
1545
+ file->dirp = NULL; /* No include dir yet */
1546
+ file->real_fname = name; /* Save file/macro name */
1547
+ file->full_fname = fullname; /* Full path list */
1548
+ if (name) {
1549
+ file->filename = xmalloc( strlen( name) + 1);
1550
+ strcpy( file->filename, name); /* Copy for #line */
1551
+ } else {
1552
+ file->filename = NULL;
1553
+ }
1554
+ if (src_dir) {
1555
+ file->src_dir = xmalloc( strlen( src_dir) + 1);
1556
+ strcpy( file->src_dir, src_dir);
1557
+ } else {
1558
+ file->src_dir = NULL;
1559
+ }
1560
+ file->last_fputc = mcpp_lib_fputc;
1561
+ file->last_fputs = mcpp_lib_fputs;
1562
+ file->last_fprintf = mcpp_lib_fprintf;
1563
+ if (infile != NULL) { /* If #include file */
1564
+ infile->line = src_line; /* Save current line */
1565
+ infile->last_fputc = mcpp_fputc;
1566
+ infile->last_fputs = mcpp_fputs;
1567
+ infile->last_fprintf = mcpp_fprintf;
1568
+ }
1569
+ infile = file; /* New current file */
1570
+
1571
+ return file; /* All done. */
1572
+ }
1573
+
1574
+ static const char * const out_of_memory
1575
+ = "Out of memory (required size is %.0s0x%lx bytes)"; /* _F_ */
1576
+
1577
+ char *
1578
+ (xmalloc)(
1579
+ size_t size
1580
+ )
1581
+ /*
1582
+ * Get a block of free memory.
1583
+ */
1584
+ {
1585
+ char * result;
1586
+
1587
+ if ((result = (char *) malloc( size)) == NULL) {
1588
+ if (mcpp_debug & MEMORY)
1589
+ print_heap();
1590
+ cfatal( out_of_memory, NULL, (long) size, NULL);
1591
+ }
1592
+ return result;
1593
+ }
1594
+
1595
+ char * (xrealloc)(
1596
+ char * ptr,
1597
+ size_t size
1598
+ )
1599
+ /*
1600
+ * Reallocate malloc()ed memory.
1601
+ */
1602
+ {
1603
+ char * result;
1604
+
1605
+ if ((result = (char *) realloc( ptr, size)) == NULL && size != 0) {
1606
+ /* 'size != 0' is necessary to cope with some */
1607
+ /* implementation of realloc( ptr, 0) which returns NULL. */
1608
+ if (mcpp_debug & MEMORY)
1609
+ print_heap();
1610
+ cfatal( out_of_memory, NULL, (long) size, NULL);
1611
+ }
1612
+ return result;
1613
+ }
1614
+
1615
+ LINE_COL * get_src_location(
1616
+ LINE_COL * p_line_col /* Line and column on phase 4 */
1617
+ )
1618
+ /*
1619
+ * Convert line-column datum of just after translation phase 3 into that of
1620
+ * phase 2, tracing back line splicing by a comment and <backslash><newline>.
1621
+ * Note: This conversion does not give correct datum on a line catenated by
1622
+ * both of <backslash><newline> and line-crossing-comment at the same time.
1623
+ *
1624
+ * com_cat_line and bsl_cat_line have data only on last catenated line.
1625
+ * com_cat_line.len[] and bsl_cat_line.len[] have the length of catenated
1626
+ * line, and len[ 0] is always 0, followed by len[ 1], len[ 2], ..., as
1627
+ * accumulated length of successively catenated lines.
1628
+ */
1629
+ {
1630
+ long line;
1631
+ size_t col;
1632
+ size_t * cols;
1633
+ CAT_LINE * l_col_p;
1634
+ int i;
1635
+
1636
+ line = p_line_col->line;
1637
+ col = p_line_col->col;
1638
+
1639
+ for (i = 0; i <= 1; i++) {
1640
+ l_col_p = i ? & bsl_cat_line : & com_cat_line;
1641
+ if (l_col_p->last_line != line)
1642
+ continue;
1643
+ /* Else just catenated line */
1644
+ cols = l_col_p->len + 1;
1645
+ while (*cols < col)
1646
+ cols++;
1647
+ if (col <= *cols) {
1648
+ cols--;
1649
+ col -= *cols;
1650
+ }
1651
+ line = l_col_p->start_line + (cols - l_col_p->len);
1652
+ }
1653
+
1654
+ p_line_col->line = line;
1655
+ p_line_col->col = col + 1;
1656
+ /* col internally start at 0, output start at 1 */
1657
+
1658
+ return p_line_col;
1659
+ }
1660
+
1661
+ static void do_msg(
1662
+ const char * severity, /* "fatal", "error", "warning" */
1663
+ const char * format, /* Format for the error message */
1664
+ const char * arg1, /* String arg. for the message */
1665
+ long arg2, /* Integer argument */
1666
+ const char * arg3 /* Second string argument */
1667
+ )
1668
+ /*
1669
+ * Print filenames, macro names, line numbers and error messages.
1670
+ * Also print macro definitions on macro expansion problems.
1671
+ */
1672
+ {
1673
+ FILEINFO * file;
1674
+ DEFBUF * defp;
1675
+ int i;
1676
+ size_t slen;
1677
+ const char * arg_s[ 2];
1678
+ char * arg_t[ 2];
1679
+ char * tp;
1680
+ const char * sp;
1681
+ int c;
1682
+ int ind;
1683
+
1684
+ fflush( fp_out); /* Synchronize output and diagnostics */
1685
+ arg_s[ 0] = arg1; arg_s[ 1] = arg3;
1686
+
1687
+ for (i = 0; i < 2; i++) { /* Convert special characters to visible */
1688
+ sp = arg_s[ i];
1689
+ if (sp != NULL)
1690
+ slen = strlen( sp) + 1;
1691
+ else
1692
+ slen = 1;
1693
+ tp = arg_t[ i] = (char *) malloc( slen);
1694
+ /* Don't use xmalloc() so as not to cause infinite recursion */
1695
+ if (sp == NULL || *sp == EOS) {
1696
+ *tp = EOS;
1697
+ continue;
1698
+ }
1699
+
1700
+ while ((c = *sp++) != EOS) {
1701
+ switch (c) {
1702
+ case TOK_SEP:
1703
+ case RT_END:
1704
+ case CAT:
1705
+ case ST_QUOTE:
1706
+ case DEF_MAGIC:
1707
+ break; /* Skip the magic characters*/
1708
+ case IN_SRC:
1709
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive)
1710
+ sp += 2; /* Skip two more bytes */
1711
+ break;
1712
+ case MAC_INF:
1713
+ switch (*sp++) { /* Skip the magic characters*/
1714
+ case MAC_ARG_START :
1715
+ sp++;
1716
+ /* Fall through */
1717
+ case MAC_CALL_START :
1718
+ sp += 2;
1719
+ break;
1720
+ case MAC_ARG_END :
1721
+ break;
1722
+ case MAC_CALL_END :
1723
+ break;
1724
+ }
1725
+ break;
1726
+ case '\n':
1727
+ *tp++ = ' '; /* Convert '\n' to a space */
1728
+ break;
1729
+ default:
1730
+ *tp++ = c;
1731
+ break;
1732
+ }
1733
+ }
1734
+
1735
+ if (*(sp - 2) == '\n')
1736
+ tp--;
1737
+ *tp = EOS;
1738
+ }
1739
+
1740
+ /* Print source location and diagnostic */
1741
+ file = infile;
1742
+ while (file != NULL && (file->fp == NULL || file->fp == (FILE *)-1))
1743
+ file = file->parent; /* Skip macro */
1744
+ if (file != NULL) {
1745
+ file->line = src_line;
1746
+ mcpp_fprintf( ERR, "%s:%ld: %s: ", cur_fullname, src_line, severity);
1747
+ }
1748
+ mcpp_fprintf( ERR, format, arg_t[ 0], arg2, arg_t[ 1]);
1749
+ mcpp_fputc( '\n', ERR);
1750
+
1751
+ /* Print source line, includers and expanding macros */
1752
+ file = infile;
1753
+ if (file != NULL && file->fp != NULL) {
1754
+ mcpp_fprintf( ERR, " %s", file->buffer);
1755
+ /* Current source line */
1756
+ file = file->parent;
1757
+ }
1758
+ while (file != NULL) { /* Print #includes, too */
1759
+ if (file->fp == NULL) { /* Macro */
1760
+ if (file->filename) {
1761
+ defp = look_id( file->filename);
1762
+ if ((defp->nargs > DEF_NOARGS_STANDARD)
1763
+ && ! (file->parent && file->parent->filename
1764
+ && str_eq( file->filename, file->parent->filename)))
1765
+ /* If the name is not duplicate of parent */
1766
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
1767
+ }
1768
+ } else { /* Source file */
1769
+ if (file->buffer[ 0] == '\0')
1770
+ strcpy( file->buffer, "\n");
1771
+ mcpp_fprintf( ERR, " from %s: %ld: %s",
1772
+ file->line ? file->full_fname /* Full-path-list */
1773
+ : "<stdin>", /* Included by -include */
1774
+ file->line, /* Current line number */
1775
+ file->buffer); /* The source line */
1776
+ }
1777
+ file = file->parent;
1778
+ }
1779
+
1780
+ if (! macro_name)
1781
+ goto free_arg;
1782
+ /* Additional information of macro definitions */
1783
+ expanding_macro[ 0].name = macro_name;
1784
+ for (ind = 0; ind <= exp_mac_ind; ind++) {
1785
+ int ind_done;
1786
+
1787
+ for (ind_done = 0; ind_done < ind; ind_done++)
1788
+ if (str_eq( expanding_macro[ ind].name
1789
+ , expanding_macro[ ind_done].name))
1790
+ break; /* Already reported */
1791
+ if (ind_done < ind)
1792
+ continue;
1793
+ for (file = infile; file; file = file->parent)
1794
+ if (file->fp == NULL && file->filename
1795
+ && str_eq( expanding_macro[ ind].name, file->filename))
1796
+ break; /* Already reported */
1797
+ if (file)
1798
+ continue;
1799
+ if ((defp = look_id( expanding_macro[ ind].name)) != NULL) {
1800
+ if (defp->nargs <= DEF_NOARGS_STANDARD)
1801
+ continue; /* Standard predefined */
1802
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
1803
+ /* Macro already read over */
1804
+ }
1805
+ }
1806
+
1807
+ free_arg:
1808
+ for (i = 0; i < 2; i++)
1809
+ free( arg_t[ i]);
1810
+ }
1811
+
1812
+ void cfatal(
1813
+ const char * format,
1814
+ const char * arg1,
1815
+ long arg2,
1816
+ const char * arg3
1817
+ )
1818
+ /*
1819
+ * A real disaster.
1820
+ */
1821
+ {
1822
+ do_msg( "fatal error", format, arg1, arg2, arg3);
1823
+ longjmp( error_exit, -1);
1824
+ }
1825
+
1826
+ void cerror(
1827
+ const char * format,
1828
+ const char * arg1,
1829
+ long arg2,
1830
+ const char * arg3
1831
+ )
1832
+ /*
1833
+ * Print a error message.
1834
+ */
1835
+ {
1836
+ do_msg( "error", format, arg1, arg2, arg3);
1837
+ errors++;
1838
+ }
1839
+
1840
+ void cwarn(
1841
+ const char * format,
1842
+ const char * arg1,
1843
+ long arg2,
1844
+ const char * arg3
1845
+ )
1846
+ /*
1847
+ * Maybe an error.
1848
+ */
1849
+ {
1850
+ do_msg( "warning", format, arg1, arg2, arg3);
1851
+ }
1852
+
1853
+ void dump_string(
1854
+ const char * why,
1855
+ const char * text
1856
+ )
1857
+ /*
1858
+ * Dump text readably.
1859
+ * Bug: macro argument number may be putout as a control character or any
1860
+ * other character, just after MAC_PARM has been read away.
1861
+ */
1862
+ {
1863
+ const char * cp;
1864
+ const char * chr;
1865
+ int c, c1, c2;
1866
+
1867
+ if (why != NULL)
1868
+ mcpp_fprintf( DBG, " (%s)", why);
1869
+ mcpp_fputs( " => ", DBG);
1870
+
1871
+ if (text == NULL) {
1872
+ mcpp_fputs( "NULL", DBG);
1873
+ return;
1874
+ }
1875
+
1876
+ for (cp = text; (c = *cp++ & UCHARMAX) != EOS; ) {
1877
+ chr = NULL;
1878
+
1879
+ switch (c) {
1880
+ case MAC_PARM:
1881
+ c = *cp++ & UCHARMAX; /* Macro parameter number */
1882
+ mcpp_fprintf( DBG, "<%d>", c);
1883
+ break;
1884
+ case MAC_INF:
1885
+ if (! ((mcpp_debug & MACRO_CALL)))
1886
+ goto no_magic;
1887
+ /* Macro informations inserted by -K option */
1888
+ c2 = *cp++ & UCHARMAX;
1889
+ if (c2 == MAC_CALL_START || c2 == MAC_ARG_START) {
1890
+ c = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
1891
+ c += (*cp++ & UCHARMAX) - 1;
1892
+ }
1893
+ switch (c2) {
1894
+ case MAC_CALL_START:
1895
+ mcpp_fprintf( DBG, "<MAC%d>", c);
1896
+ break;
1897
+ case MAC_CALL_END:
1898
+ chr = "<MAC_END>";
1899
+ break;
1900
+ case MAC_ARG_START:
1901
+ c1 = *cp++ & UCHARMAX;
1902
+ mcpp_fprintf( DBG, "<MAC%d:ARG%d>", c, c1 - 1);
1903
+ break;
1904
+ case MAC_ARG_END:
1905
+ chr = "<ARG_END>";
1906
+ break;
1907
+ }
1908
+ break;
1909
+ case DEF_MAGIC:
1910
+ chr = "<MAGIC>";
1911
+ break;
1912
+ case CAT:
1913
+ chr = "##";
1914
+ break;
1915
+ case ST_QUOTE:
1916
+ chr = "#";
1917
+ break;
1918
+ case RT_END:
1919
+ chr = "<RT_END>";
1920
+ break;
1921
+ case IN_SRC:
1922
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
1923
+ int num;
1924
+ num = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
1925
+ num += (*cp++ & UCHARMAX) - 1;
1926
+ mcpp_fprintf( DBG, "<SRC%d>", num);
1927
+ } else {
1928
+ chr = "<SRC>";
1929
+ }
1930
+ break;
1931
+ case TOK_SEP:
1932
+ chr = "<TSEP>";
1933
+ break;
1934
+ default:
1935
+ no_magic:
1936
+ if (c < ' ')
1937
+ mcpp_fprintf( DBG, "<^%c>", c + '@');
1938
+ else
1939
+ mcpp_fputc( c, DBG);
1940
+ break;
1941
+ }
1942
+
1943
+ if (chr)
1944
+ mcpp_fputs( chr, DBG);
1945
+ }
1946
+
1947
+ mcpp_fputc( '\n', DBG);
1948
+ }
1949
+
1950
+ void dump_unget(
1951
+ const char * why
1952
+ )
1953
+ /*
1954
+ * Dump all ungotten junk (pending macros and current input lines).
1955
+ */
1956
+ {
1957
+ const FILEINFO * file;
1958
+
1959
+ mcpp_fputs( "dump of pending input text", DBG);
1960
+ if (why != NULL) {
1961
+ mcpp_fputs( "-- ", DBG);
1962
+ mcpp_fputs( why, DBG);
1963
+ }
1964
+ mcpp_fputc( '\n', DBG);
1965
+
1966
+ for (file = infile; file != NULL; file = file->parent)
1967
+ dump_string( file->real_fname ? file->real_fname
1968
+ : file->filename ? file->filename : "NULL", file->bptr);
1969
+ }
1970
+
1971
+ static void dump_token(
1972
+ int token_type,
1973
+ const char * cp /* Token */
1974
+ )
1975
+ /*
1976
+ * Dump a token.
1977
+ */
1978
+ {
1979
+ static const char * const t_type[]
1980
+ = { "NAM", "NUM", "STR", "WSTR", "CHR", "WCHR", "OPE", "SPE"
1981
+ , "SEP", };
1982
+
1983
+ mcpp_fputs( "token", DBG);
1984
+ dump_string( t_type[ token_type - NAM], cp);
1985
+ }