// IfsTelnetPressShow.bcpl -- Executive press-queue subcommands // Copyright Xerox Corporation 1980, 1981 // Last modified November 14, 1981 10:51 AM by Taft get "Ifs.decl" get "IfsFiles.decl" get "IfsPress.decl" get "IfsRs.decl" external [ // outgoing procedures ExecShowPress; // incoming procedures EnumeratePressQueue; IFSPrintError; TelnetAborting; TelnetConfirm; FreePointer; GetString; PutTemplate; StringCompare; TruePredicate; Ws; Wss; // incoming statics dsp; CtxRunning ] //---------------------------------------------------------------------------- let ExecShowPress(cs, showOnly) be //---------------------------------------------------------------------------- // Called with showOnly = true by "Show Print-requests" // Called with showOnly = false by "Cancel" [ let userName = nil // word after showOnly unless showOnly do Wss(cs, " (printing requests)") let ui = CtxRunning>>RSCtx.userInfo userName = ui>>UserInfo.userName if ui>>UserInfo.capabilities.wheel then [ Wss(cs, " (for user) ") userName = GetString(cs, 0, Wss, "user name") ] let capabilities = ui>>UserInfo.capabilities ui>>UserInfo.capabilities.wheel = true EnumeratePressQueue(TruePredicate, ShowPQE, lv showOnly) ui>>UserInfo.capabilities = capabilities if userName ne ui>>UserInfo.userName then FreePointer(lv userName) ] //---------------------------------------------------------------------------- and ShowPQE(pqe, serverName, lvShowOnly) = valof //---------------------------------------------------------------------------- [ let requestorName = pqe + pqe>>PQE.requestorName if not TelnetAborting() & ((lvShowOnly!1)>>String.length eq 0 % StringCompare(lvShowOnly!1, requestorName) eq 0) then [ PutTemplate(dsp, "*n$S, $D pages, to $S, for $S, $S-sided", pqe+(pqe>>PQE.fileName), (pqe>>PQE.pages)*(pqe>>PQE.copies), serverName, requestorName, (pqe>>PQE.duplex? "2","1")) if pqe>>PQE.holdPassword ne 0 then PutTemplate(dsp, " Password: $S", pqe+pqe>>PQE.holdPassword); test pqe>>PQE.status eq ecPQEPending ifso if not @lvShowOnly & TelnetConfirm(". Cancel?") then pqe>>PQE.status = ecPQERemoved ifnot [ Ws("*n --"); IFSPrintError(dsp, pqe>>PQE.status) ] ] // Always rewrite PQE -- so that we will set write date = read date. // This generates some additional activity for the Press background // process. But if we didn't do this, the read date would end up // later than the write date, and background processing of this file // might be erroneously delayed. resultis true ]