; .EnTete "Le-Lisp (c) version 15.2" "" "Le contro↑leur d'impression minimum" ; .EnPied "minimore.ll" "N-%" " " ; .Annexe N "Le contro↑leur d'impression minimum" ; .nr % 1 ; ; .Centre "*****************************************************************" ; .Centre " Ce fichier est en lecture seule hors du projet ALE de l'INRIA. " ; .Centre " Il est maintenu par ILOG SA, 2 Avenue Gallie'ni, 94250 Gentilly " ; .Centre " (c) Le-Lisp est une marque de'pose'e de l'INRIA " ; .Centre "*****************************************************************" ; .Centre "$Header: minimore.ll,v 4.1 88/01/13 12:22:40 kuczynsk Rel $" (unless (>= (version) 15.2) (error 'load 'erricf 'minimore)) ; Le mini contro↑leur d'impression : MINIMORE mais il fait le MAXIMORE! (defvar #:sys-package:colon 'minimore) (defvar :count (tyymax)) (defvar :string "--More--") (de more () ; rentre dans MORE (unless (memq 'minimore #:sys-package:itsoft) (setq #:sys-package:itsoft (cons 'minimore #:sys-package:itsoft)))) (de morend () ; sort de MORE (setq #:sys-package:itsoft (delq 'minimore #:sys-package:itsoft))) (de :bol () ; a` chaque lecture d'une nouvelle ligne sur le terminal ; je repositionne le compteur. (when (null (inchan)) (setq :count (tyymax))) (super-itsoft '#.#:sys-package:colon 'bol ())) (de :eol () ; a` chaque impression d'une nouvelle ligne sur le terminal ; je compte et j'interpre`te. (when (null (outchan)) (when (eq :count 0) (tystring :string (slen :string)) (selectq (tyi) ((#↑M #↑J) ; affiche une seule ligne (setq :count 1)) (#↑D ; affiche un demi e'cran (setq :count (div (tyymax) 2))) (#/ ; affiche un e'cran entier (setq :count (tyymax))) (#/q ; sort de MORE (setq :count (tyymax)) (for (i (sub1 (slength :string)) -1 0) (tyback (chrnth i :string))) (fillstring (outbuf) 0 #\sp (outpos)) (outpos 0) (exit #:system:toplevel-tag)) (t (setq :count 1))) ; efface la chai↑ne "encore" (for (i (sub1 (slength :string)) -1 0) (tyback (chrnth i :string)))) (setq :count (sub1 :count))) ; repasse au papa ... (super-itsoft '#.#:sys-package:colon 'eol ()))