<<>> <> <> <> <> <<>> DIRECTORY Commander, CommanderOps, Customize, IO, Rope, Xl, XlDB, XTkWidgets; X11ResourceCommands: CEDAR MONITOR IMPORTS Commander, CommanderOps, Customize, IO, Rope, Xl, XlDB, XTkWidgets = BEGIN ReadResource: Commander.CommandProc ~ { ENABLE { Customize.QueryError => CommanderOps.Failed[Rope.Concat["Customize.QueryError: ", what]]; Xl.connectionNotCreated => CommanderOps.Failed[Rope.Concat["Connection not created: ", why.reason]]; }; query: Rope.ROPE ¬ CommanderOps.ArgN[cmd, 1]; answer: Rope.ROPE; db: Customize.DBreadonly; shell: XTkWidgets.Widget; IF CommanderOps.NumArgs[cmd]#2 THEN CommanderOps.Failed["Command needs exactly one query argument"]; shell ¬ XTkWidgets.CreateShell[]; XTkWidgets.BindScreenShell[shell]; answer ¬ XlDB.QueryStandardDB[shell.connection, query]; XTkWidgets.DestroyShell[shell]; IF answer=NIL THEN CommanderOps.Failed["No entry in database"]; IO.PutF1[cmd.out, "%g\n", IO.rope[answer]]; }; Commander.Register["X11ReadResource", ReadResource, "Query the X resource database"]; END.