Ich möchte Code für permanente Änderungen innerhalb einer PostScript-Prozedur ausführen. Ohne es zu einem Verfahren Einwickeln Dinge funktionieren:Verwenden Sie den Exitserver in einer PostScript-Prozedur
serverdict begin 0 exitserver
(PERMANENT_STUFF_HERE) ==
Wenn jedoch diese in eine Postscript-Prozedur Einwickeln und es mit myprocedure
Aufruf, den Code scheinen nach exitserver nicht mehr ausgeführt wird:
/myprocedure {
serverdict begin 0 exitserver
(PERMANENT_STUFF_HERE) ==
} def
myprocedure
Warum ist das? Ich dachte, PostScript-Prozeduren wären einfache Makros, die den Prozedurnamen beim Aufruf einfach durch seinen Inhalt ersetzen. Gibt es eine Möglichkeit, exitserver/startjob-Code innerhalb einer Prozedur aufzurufen?
Ich habe darüber weiter nachgedacht und jetzt bin ich mir nicht so sicher. Wie ist es möglich, dass "der Interpreter die Eingabe weiter bearbeitet", wenn der Exec Stack gelöscht wurde? Die Verarbeitung der Eingabe muss über eine innere Leseschleife oder eine ausführbare Datei auf dem Exec Stack erfolgen. Also muss 'exitserver' chirurgischer sein, als nur den execstack zu löschen. –
Der Interpreter bearbeitet den Eingabestrom weiter. Alles, was in der Mitte der Verarbeitung ist, wird natürlich gelöscht. Jede neue Eingabe nach dem Exit-Server wird normal verarbeitet. Im Wesentlichen führt dies den Interpreter in einen "sauberen" Zustand zurück und beendet die Job-Server-Schleife. Die Eingabe nach dem Exitserver hat einen "permanenten" Effekt. Sie deaktivieren damit die Job-Kapselung. Beachten Sie, dass ** extrem ** alte Versionen von Ghostscript keine Job-Server-Schleife ausgeführt haben. – KenS
Einverstanden, aber der eigentliche Effekt auf den Execstack muss sein, das Dateiobjekt zumindest zu packen, bevor Sie zum Jobserver abrechnen Schleife und Starten einer neuen Schleife, um die wiederhergestellte Datei zu lesen und einen Neustart des Jobservers zu planen, nachdem die Datei beendet wurde. Es scheint, dass es nicht unvorstellbar ist, 'exitserver' zu entwerfen, um den Jobserver von unten zu trimmen und den Benutzerbereich ungestört zu belassen . Die Nutzer in nicht tragbare Funktionen zu verführen, scheint ein großer Nachteil dieses Ansatzes zu sein.(Ich sollte gestehen, dass die Hälfte dieser intellektuellen Übung auf das Ziel der Umsetzung gerichtet war, nicht auf die Frage von OP.) –