DIRECTORY Commander, IO, PupDefs, PupTypes, Rope; HostName: CEDAR PROGRAM IMPORTS Commander, IO, PupDefs = { ROPE: TYPE = Rope.ROPE; HostNameCmd: PROC [cmd: Commander.Handle] RETURNS [result: REF ANY _ NIL, msg: ROPE _ NIL] --Commander.CommandProc-- = { cmdStream: IO.STREAM _ IO.RIS[cmd.commandLine]; someArgs: BOOL _ FALSE; FOR i: INT _ cmdStream.SkipWhitespace[], cmdStream.SkipWhitespace[] WHILE NOT cmdStream.EndOf[] DO ENABLE PupDefs.PupNameTrouble => { cmd.err.PutF[" %g ", IO.rope[e]]; LOOP; }; host: ROPE _ cmdStream.GetTokenRope[IO.IDProc].token; name: ROPE; address: PupDefs.PupAddress; someArgs _ TRUE; address _ PupDefs.GetPupAddress[PupTypes.fillInSocketID, host]; name _ PupDefs.GetHostName[address]; cmd.out.PutF[" %g(%g)", IO.rope[name], IO.rope[PupDefs.PupAddressToRope[address]]]; ENDLOOP; IF NOT someArgs THEN { address: PupDefs.PupAddress _ PupDefs.AnyLocalPupAddress[PupTypes.fillInSocketID]; name: ROPE _ PupDefs.GetMyName[]; address.socket _ PupTypes.fillInSocketID; cmd.out.PutF["%g(%g)", IO.rope[name], IO.rope[PupDefs.PupAddressToRope[address]]]; }; cmd.out.PutRope["\n"]; }; Commander.Register["HostName", HostNameCmd, "gives name and address of given hosts, or self if no args"]; }. DHostNameImpl.mesa Spreitzer, August 13, 1985 10:47:26 am PDT Κ²– "cedar" style˜code™K™*—K˜KšΟk œ œ˜1K˜š Πbxœœœœ œ ˜:K˜Kšœœœ˜K˜šΟn œœœ œœœœœΟcœ˜xKš œ œœœœ˜/Kšœ œœ˜š œœ:œœ˜bš˜šœ˜Kšœœ ˜"Kšœ˜Kšœ˜——Kšœœœ˜5Kšœœ˜ Kšœ˜Kšœ œ˜Kšœ?˜?Kšœ$˜$Kšœœ œ*˜SKšœ˜—šœœ œ˜KšœR˜RKšœœ˜!Kšœ)˜)Kšœœ œ*˜RK˜—K˜K˜—K˜K˜iK˜K˜——…—ΔΊ