anchor.diff:           (vm        (task-vm *task*)))
       (let ((file (lse-data-file-open path :if-does-not-exist nil)))
         (if file
  -          (let ((source (nsubstitute-if #\Newline
  -                                        (lambda (ch) (or (char= ch *xoff*)
  -                                                         (char= ch *nul*)))
  -                                        (unsplit-string
  -                                         (unwind-protect
  -                                              (loop
  -                                                :for rn :from 1
  -                                                :for chunk = (read-record file rn)
  -                                                :collect chunk
  -                                                :until (char= (aref chunk (1- (length chunk))) *nul*))
  -                                           (lse-data-file-close file))
  -                                         ""))))
  -            #+debugging (io-format *task* "~2&~A~2&" source)
  -            ;; #+lse-mitra-15 (let* ((path      (catalog-pathname pgm :p))
  -            ;;                       (vm        (task-vm *task*))
  -            ;;                       (new-pgm   (compile-lse-file path pgm)))
  -            ;;                  (vm-terminer vm)
  -            ;;                  (replace-program vm new-pgm)
  -            ;;                  (values))
  -            (with-input-from-string (stream source)
  -              (dolist (line (compile-lse-stream stream))
  -                ;; ENCODER merges the lines on T-1600 and unix.
  -                (when (and (<= from (code-line line))
  -                           (or (null to)
  -                               (<= (code-line line) to)))
  -                  (put-line vm (code-line line) line)))))
  -          (error 'lse-file-error
  -                 :backtrace (or #+ccl (ccl::backtrace-as-list))
  -                 :pathname path
  -                 :format-control "IL N'Y A PAS DE FICHIER TEMPORAIRE '~A' A ENCODER."
  -                 :format-arguments (list fichier))))))
  +        (let ((source (nsubstitute-if #\Newline
  +                                      (lambda (ch) (or (char= ch *xoff*)
  +                                                    (char= ch *nul*)))
  +                                      (unsplit-string
  +                                       (unwind-protect
  +                                           (loop
  +                                             :for rn :from 1
  +                                             :for chunk = (read-record file rn)
  +                                             :collect chunk
  +                                             :until (char= (aref chunk (1- (length chunk))) *nul*))
  +                                         (lse-data-file-close file))
  +                                       ""))))
  +          #+debugging (io-format *task* "~2&~A~2&" source)
  +          ;; #+lse-mitra-15 (let* ((path      (catalog-pathname pgm :p))
  +          ;;                       (vm        (task-vm *task*))
  +          ;;                       (new-pgm   (compile-lse-file path pgm)))
  +          ;;                  (vm-terminer vm)
  +          ;;                  (replace-program vm new-pgm)
  +          ;;                  (values))
  +          (with-input-from-string (stream source)
  +            (dolist (line (compile-lse-stream stream))
  +              ;; ENCODER merges the lines on T-1600 and unix.
  +              (when (and (<= from (code-line line))
  +                         (or (null to)
  +                             (<= (code-line line) to)))
  +                (put-line vm (code-line line) line)))))
  +        (error 'lse-file-error
  +               :backtrace (or #+ccl (ccl::backtrace-as-list))
  +               :pathname path
  +               :format-control "IL N'Y A PAS DE FICHIER TEMPORAIRE '~A' A ENCODER."
  +               :format-arguments (list fichier))))))
   
   
   (defcommand "CATALOGUER" awake  deux-fichiers (temporaire permanent)
  
positive.code:     :until (string-equal line "FIN")
      :do
      (setf account (if (zerop (length line))
                        (mod (1+ account) 100)
                        (parse-integer line :junk-allowed nil)))
      (if (<= 0 account 99)
          (let ((op (account-check-right account :programme))
                (od (account-check-right account :permanent))
                (oa (account-check-right account :tempoauto))
                (of (account-check-right account :tempofixe))
                np nd na nf)
            (io-carriage-return *task*)
            (io-format *task* 
                       "   ~2,'0D       ~{~[0~;1~]~}     "
                       account (list op od oa of))
            (setf line (io-read-line *task*))
            (if (and (= 4 (length line))
                     (every (lambda (ch) (position ch "01")) line))
                (progn
                  (setf np (char= (character "1") (aref line 0))
                        nd (char= (character "1") (aref line 1))
                        na (char= (character "1") (aref line 2))
                        nf (and (not na)
                                (char= (character "1") (aref line 3))))
                  (account-set-right account :programme np)
                  (account-set-right account :permanent nd)
                  (account-set-right account :tempoauto na)
                  (account-set-right account :tempofixe nf))
                (setf np op  nd od  na oa  nf of))
            (io-carriage-return *task*)
            (io-format *task*
                       "   ~2,'0D       ~{~[0~;1~]~}      ~{~[0~;1~]~}    "
                       account (list op od oa of) (list np nd na nf)) )
          (io-format *task* "NO. DE COMPTE INVALIDE (DOIT ETRE UN NOMBRE ENTRE 00 et 99).~%")))
    (io-new-line *task*))
  
  
  
negative.code:                  (tok-numero  "[0-9]+")
                   (tok-identificateur "[A-Za-z][A-Za-z0-9]*"))
      :start un-fichier-et-deux-numeros
      :eof-symbol eol
      :rules (
              (--> un-fichier-et-deux-numeros
                   (seq ident (opt (seq tok-virgule deux-numeros :action deux-numeros)
  