Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!lll-crg!ames!ucbcad!ucbvax!decvax!decwrl!adobe!greid
From: greid@adobe.UUCP (Glenn Reid)
Newsgroups: comp.text
Subject: Re: Help with LaserWriter Plus/PostScript
Message-ID: <2004@adobe.UUCP>
Date: Thu, 18-Dec-86 20:16:38 EST
Article-I.D.: adobe.2004
Posted: Thu Dec 18 20:16:38 1986
Date-Received: Fri, 19-Dec-86 03:11:26 EST
References: <2362@psuvax1.UUCP>
Reply-To: greid@adobe.UUCP (Glenn Reid)
Distribution: world
Organization: Adobe Systems, Palo Alto
Lines: 38
Keywords: PostScript, LaserWriter Plus

>We just got a couple of LaserWriter Pluses in the department, and being
>adventerous tried changing the printer name with the attach PostScript
>program.  This always results in the following error showing up in the
>log file:
>
>	%%[ Error: undefined; OffendingCommand: setprintername ]%%
>
>From reading in "PostScript Language Reference Manual" the program appears
>to be correct.  The "setprintername" command has a dagger after it, along
>with a number of other "set*" commands, but I cannot find what the dagger
>means.  Any help would be appreciated.  Thanks in advance.

    The dagger means that you must exit the server loop before
    executing that particular operator.  This is not the problem,
    since you have done that in your example file.

    The problem is that "exitserver" will start a new job, and once
    it is executed, neither serverdict nor statusdict will be present
    on the dictionary stack (This is why you don't need a
    corresponding "end" for "serverdict begin".  Here is a revised
    version of your program which should work correctly:

%!
0000
serverdict begin
statusdict begin
dup checkpassword {
    exitserver
}{
    (      ) cvs print
    ( is not the correct server password.)= flush stop
} ifelse

% here begins a new job, in effect.  Hereafter all definitions will
% remain until the printer is re-booted.
statusdict begin
    (PSU/CS-LaserWriter0) setprintername
end