<<>> <> <> <> <> <> <<>> <<>> DIRECTORY CStrings, InstallationComforts, InstallationSupportPrivate, Rope, UXStrings ; InstallationComfortsFromCImpl: CEDAR PROGRAM IMPORTS InstallationComforts, UXStrings ~ BEGIN OPEN InstallationSupportPrivate; CString: TYPE ~ CStrings.CString; ROPE: TYPE ~ Rope.ROPE; <> ExternalNames: PROC = TRUSTED MACHINE CODE { "^ExternalNames\n"; "InterfaceFromConfig XR_InterfaceFromConfig\n"; "ChildProgramFromConfig XR_ChildProgramFromConfig\n"; "ChildConfigFromConfig XR_ChildConfigFromConfig\n"; "ProcFromInterface XR_ProcFromInterface\n"; "ProcFromNamedInterface XR_ProcFromNamedInterface\n"; "ProcName XR_ProcName\n"; }; <<>> <> InterfaceFromConfig: PROC [interfaceName: CString, context: Config] RETURNS [Interface] ~ { foundInterface: Interface ¬ NIL; rInterfaceName: ROPE ~ UXStrings.ToRope[interfaceName]; RETURN[InstallationComforts.InterfaceFromConfig[rInterfaceName, context]]; }; ChildProgramFromConfig: PROC [programName: CString, context: Config] RETURNS [Program] ~ { foundProgram: Program ¬ NIL; rProgram: ROPE ~ UXStrings.ToRope[programName]; RETURN[InstallationComforts.ChildProgramFromConfig[rProgram, context]]; }; ChildConfigFromConfig: PROC [configName: CString, context: Config] RETURNS [Config] ~ { foundConfig: Config ¬ NIL; rConfigName: ROPE ~ UXStrings.ToRope[configName]; RETURN[InstallationComforts.ChildConfigFromConfig[rConfigName, context]]; }; ProcFromInterface: PROC [interface: Interface, procName: CString] RETURNS [PROCEDURE ANY RETURNS ANY] ~ { IF interface#NIL THEN { rProcName: ROPE ~ UXStrings.ToRope[procName]; RETURN[InstallationComforts.ProcFromInterface[interface, rProcName]]; }; RETURN[NIL]; }; ProcFromNamedInterface: PROC [interfaceName: CString, procName: CString, context: Config] RETURNS [PROCEDURE ANY RETURNS ANY] ~ { rInterfaceName: ROPE ~ UXStrings.ToRope[interfaceName]; rProcName: ROPE ~ UXStrings.ToRope[procName]; RETURN[InstallationComforts.ProcFromNamedInterface[rInterfaceName, rProcName, context]]; }; ProcName: PROC [p: PROCEDURE ANY RETURNS ANY] RETURNS [CString] ~ TRUSTED { rName: ROPE ~ InstallationComforts.ProcName[p]; RETURN[UXStrings.Create[rName]]; }; ExternalNames[]; -- get the external names known END.