/[gcl]/gcl/tests/format.tst
ViewVC logotype

Diff of /gcl/tests/format.tst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by camm, Thu Dec 20 20:29:54 2001 UTC revision 1.2 by camm, Sun Feb 3 18:44:08 2002 UTC
# Line 0  Line 1 
1    ;*******************************************************************************
2    ;*      Rosenmueller            format.tst                                     *
3    ;*******************************************************************************
4    
5    ; ~< ---------------------------------------------------------------------------
6    (format nil "~10<foo~;bar~>")
7    "foo    bar"
8    
9    (format nil "~10:<foo~;bar~>")
10    "  foo  bar"
11    
12    (format nil "~10@<foo~;bar~>")
13    "foo  bar  "
14    
15    (format nil "~10:@<foo~;bar~>")
16    "  foo bar "
17    
18    (format nil "~10<foobar~>")
19    "    foobar"
20    
21    (format nil "~10:<foobar~>")
22    "    foobar"
23    
24    (format nil "~10@<foobar~>")
25    "foobar    "
26    
27    (format nil "~10:@<foobar~>")
28    "  foobar  "
29    
30    ; ~< ~s ~^ ---------------------------------------------------------------------
31    (format nil "~15<~S~>" 'foo)
32    "            foo"
33    
34    (format nil "~15<~S~;~^~S~>" 'foo)
35    "            foo"
36    
37    (format nil "~15<~S~;~^~S~;~^~S~>" 'foo)
38    "            foo"
39    
40    (format nil "~15<~S~;~^~S~>" 'foo 'bar)
41    "foo         bar"
42    
43    (format nil "~15<~S~;~^~S~;~^~S~>" 'foo 'bar)
44    "foo         bar"
45    
46    (format nil "~15<~S~;~^~S~;~^~S~>" 'foo 'bar 'baz)
47    "foo   bar   baz"
48    
49    (progn
50    (setq liste '(aaaaaaa bbbbbb cccccccccccc dddddddddddddd eeee fffffffff
51    gggggggg
52     hhhhh iiii j kk lll mmmm nnnnnn oooooooooo ppppppppppppppp qqqqqqq
53    rrrrrrrrrrrr
54    s ttt uuuuuuuuu vvvvvvv wwwwwwwwww xxxxx yyyyyy zzzzzzzz))              ;26
55    T)
56    T
57    
58    (format nil "~%;; ~<~%;; ~1:; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~;~
59     ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~;~
60     ~s~; ~s~; ~s~; ~s~;~>~%"                               ; 2!
61    'aaaaaaa 'bbbbbb 'cccccccccccc 'dddddddddddddd 'eeee 'fffffffff 'gggggggg
62    'hhhhh 'iiii 'j 'kk 'lll 'mmmm 'nnnnnn 'oooooooooo 'ppppppppppppppp
63    'qqqqqqq
64    'rrrrrrrrrrrr 's 'ttt 'uuuuuuuuu 'vvvvvvv 'wwwwwwwwww 'xxxxx 'yyyyyy
65    'zzzzzzzz)
66    #+XCL
67    "
68    ;;  AAAAAAA  BBBBBB CCCCCCCCCCCC DDDDDDDDDDDDDD EEEE FFFFFFFFF GGGGGGGG
69    ;;  HHHHH  IIII  JKK LLL MMMM NNNNNN OOOOOOOOOO PPPPPPPPPPPPPPP QQQQQQQ
70    ;;  RRRRRRRRRRRR    S    TTT   UUUUUUUUU   VVVVVVV   WWWWWWWWWW   XXXXX
71    "
72    ;23456789;123456789;123456789;123456789;123456789;123456789;123456789;12
73    #-XCL
74    "
75    ;;
76    ;;  AAAAAAA BBBBBB CCCCCCCCCCCC DDDDDDDDDDDDDD EEEE FFFFFFFFF GGGGGGGG HHHHH IIII JKK LLL MMMM NNNNNN OOOOOOOOOO PPPPPPPPPPPPPPP QQQQQQQ RRRRRRRRRRRR S TTTUUUUUUUUU VVVVVVV WWWWWWWWWW XXXXX
77    "
78    
79    (format nil "~%;; ~<~%;; ~1,50:; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~;~
80     ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~; ~s~;~
81     ~s~; ~s~; ~s~; ~s~;~>~%"                               ; 2!
82    'aaaaaaa 'bbbbbb 'cccccccccccc 'dddddddddddddd 'eeee 'fffffffff 'gggggggg
83    'hhhhh 'iiii 'j 'kk 'lll 'mmmm 'nnnnnn 'oooooooooo 'ppppppppppppppp
84    'qqqqqqq
85    'rrrrrrrrrrrr 's 'ttt 'uuuuuuuuu 'vvvvvvv 'wwwwwwwwww 'xxxxx 'yyyyyy
86    'zzzzzzzz)
87    #+XCL
88    "
89    ;;  AAAAAAA  BBBBBB  CCCCCCCCCCCC  DDDDDDDDDDDDDD
90    ;;  EEEE  FFFFFFFFF  GGGGGGGG  HHHHH IIII JKK LLL
91    ;;  MMMM    NNNNNN   OOOOOOOOOO   PPPPPPPPPPPPPPP
92    ;;  QQQQQQQ  RRRRRRRRRRRR  S TTTUUUUUUUUU VVVVVVV
93    ;;  WWWWWWWWWW                              XXXXX
94    "
95    ;23456789;123456789;123456789;123456789;123456789;
96    #-XCL
97    "
98    ;;
99    ;;  AAAAAAA BBBBBB CCCCCCCCCCCC DDDDDDDDDDDDDD EEEE FFFFFFFFF GGGGGGGG HHHHH IIII JKK LLL MMMM NNNNNN OOOOOOOOOO PPPPPPPPPPPPPPP QQQQQQQ RRRRRRRRRRRR S TTTUUUUUUUUU VVVVVVV WWWWWWWWWW XXXXX
100    "
101    
102    (defun format-blocksatz (stream parts prefix &optional line-length start-p end-p)
103      (if (null stream)
104        (let ((stream (make-string-output-stream)))
105          (format-blocksatz stream parts prefix line-length start-p end-p)
106          (get-output-stream-string stream)
107        )
108        (unless (endp parts)
109          (setq line-length (or line-length #|(sys::line-length stream)|# 72))
110          (when start-p (format stream prefix))
111          (loop
112            ; Hier ist parts /= NIL
113            (let ((pos (sys::line-position stream))
114                  (parts-now '()))
115              (let ((pos-now pos))
116                (loop
117                  (when (endp parts) (return))
118                  (let* ((part (first parts))
119                         (part-length (length part)))
120                    (unless (null parts-now)
121                      (when (> (+ pos-now part-length) line-length)
122                        (return)
123                    ) )
124                    (pop parts)
125                    (push part parts-now)
126                    (incf pos-now part-length)
127              ) ) )
128              ; Hier ist parts-now /= NIL
129              (apply #'format
130                     stream
131                     (if (and (endp parts) (not end-p))
132                       (apply #'concatenate 'string
133                         (make-list (length parts-now) :initial-element "~A")
134                       )
135                       (concatenate 'string
136                         "~"
137                         (write-to-string (max 0 (- line-length pos))
138                                          :radix nil :base 10
139                         )
140                         (if (= (length parts-now) 1) "@" "")
141                         "<"
142                         (apply #'concatenate 'string
143                           "~A"
144                           (make-list (1- (length parts-now)) :initial-element "~;~A")
145                         )
146                         "~>"
147                     ) )
148                     (nreverse parts-now)
149            ) )
150            (when (endp parts) (return))
151            (format stream prefix)
152    ) ) ) )
153    FORMAT-BLOCKSATZ
154    
155    (format-blocksatz nil
156      (mapcar #'(lambda (x) (format nil " ~A" x))
157              '(aaaaaaa bbbbbb cccccccccccc dddddddddddddd eeee fffffffff
158                gggggggg hhhhh iiii j kk lll mmmm nnnnnn oooooooooo
159                ppppppppppppppp qqqqqqq rrrrrrrrrrrr s ttt uuuuuuuuu vvvvvvv
160                wwwwwwwwww xxxxx yyyyyy zzzzzzzz)
161      )
162      "~%;; "
163      nil t nil
164    )
165    "
166    ;;  AAAAAAA  BBBBBB  CCCCCCCCCCCC DDDDDDDDDDDDDD EEEE FFFFFFFFF GGGGGGGG
167    ;;  HHHHH  IIII  J KK LLL MMMM NNNNNN OOOOOOOOOO PPPPPPPPPPPPPPP QQQQQQQ
168    ;;  RRRRRRRRRRRR   S  TTT  UUUUUUUUU  VVVVVVV  WWWWWWWWWW  XXXXX  YYYYYY
169    ;;  ZZZZZZZZ"
170    ;123456789;123456789;123456789;123456789;123456789;123456789;123456789;12
171    
172    (format-blocksatz nil
173      (mapcar #'(lambda (x) (format nil " ~A" x))
174              '(aaaaaaa bbbbbb cccccccccccc dddddddddddddd eeee fffffffff
175                gggggggg hhhhh iiii j kk lll mmmm nnnnnn oooooooooo
176                ppppppppppppppp qqqqqqq rrrrrrrrrrrr s ttt uuuuuuuuu vvvvvvv
177                wwwwwwwwww xxxxx yyyyyy zzzzzzzz)
178      )
179      "~%;; "
180      50 t t
181    )
182    "
183    ;;  AAAAAAA   BBBBBB  CCCCCCCCCCCC  DDDDDDDDDDDDDD
184    ;;  EEEE  FFFFFFFFF  GGGGGGGG  HHHHH IIII J KK LLL
185    ;;  MMMM NNNNNN OOOOOOOOOO PPPPPPPPPPPPPPP QQQQQQQ
186    ;;  RRRRRRRRRRRR    S    TTT   UUUUUUUUU   VVVVVVV
187    ;;  WWWWWWWWWW      XXXXX      YYYYYY     ZZZZZZZZ"
188    ;123456789;123456789;123456789;123456789;123456789;
189    
190    ;;; unklare Bedeutung (Fehler in Sprachbeschreibung?)
191    ;;; (format nil "~%;; ~{~<~%;; ~1:; ~s~>~^,~}.~%" liste) ""
192    ;;; (format nil "~%;; ~{~<~%;; ~1,50:; ~s~>~^,~}.~%" liste) ""
193    
194    ; ~f ---------------------------------------------------------------------------
195    ; Format F
196    
197    (DEFUN FOO (X)
198           (FORMAT NIL "~6,2F|~6,2,1,'*F|~6,2,,'?F|~6F|~,2F|~F" X X X X
199    X X))
200    FOO
201    
202    (FOO 3.14159)
203    ;       "  3.14| 31.42|  3.14|3.1416|3.14|3.141590116672995328"
204    "  3.14| 31.42|  3.14|3.1416|3.14|3.14159"
205    
206    (FOO -3.14159)
207    ;       " -3.14|-31.42| -3.14|-3.142|-3.14|-3.141590116672995328"
208    " -3.14|-31.42| -3.14|-3.142|-3.14|-3.14159"
209    
210    (FOO 100.0)
211    "100.00|******|100.00| 100.0|100.00|100.0"
212    
213    (FOO 1234.0)
214    "1234.00|******|??????|1234.0|1234.00|1234.0"
215    
216    (FOO 0.006)
217    "  0.01|  0.06|  0.01| 0.006|0.01|0.006"
218    
219    (format nil "~5,2,-13f" 1.1e13)
220    " 1.10"
221    
222    (format nil "~9,0,6f" 3.14159)
223    " 3141590."
224    
225    (FORMAT NIL "~5,3F" (QUOTE A))
226    "A"
227    
228    (FORMAT NIL "~5,3F" #C(1.2 0.3))
229    "#C(1.2 0.3)"
230    
231    (FORMAT NIL "~5,3F" 2/3)
232    "0.667"
233    
234    ; ~e ---------------------------------------------------------------------------
235    ; Format E
236    
237    (defun foo (x)
238      (format nil
239              "~9,2,1,,'*E|~10,3,2,2,'?,,'$E|~9,3,2,-2,'%@e|~9,2E"
240              x x x x))
241    FOO
242    
243    (foo 3.14159)
244    "  3.14E+0| 31.42$-01|+.003E+03|  3.14E+0"
245    
246    (foo -3.14159)
247    " -3.14E+0|-31.42$-01|-.003E+03| -3.14E+0"
248    
249    (foo 1100.0)
250    "  1.10E+3| 11.00$+02|+.001E+06|  1.10E+3"
251    
252    (foo 1100.0L0)
253    #+XCL "  1.10D+3| 11.00$+02|+.001D+06|  1.10D+3"
254    #+CLISP "  1.10L+3| 11.00$+02|+.001L+06|  1.10L+3"
255    
256    (foo 1.1E13)
257    "*********| 11.00$+12|+.001E+16| 1.10E+13"
258    
259    ; ERROR beim read der zahl (foo 1.1L120)
260    
261    (FORMAT NIL "_~10,4E_" 1.2)
262    "_ 1.2000E+0_"
263    
264    (format nil "~9,2,1E" 0.0314159)
265    "  3.14E-2"
266    
267    ; ~% ~d ~e (v) -----------------------------------------------------------------
268    (let (x)
269     (dotimes (k 13 x)
270      (setq x (cons (format nil "~%Scale factor ~2D: |~13,6,2,VE|"
271              (- k 5) (- k 5) 3.14159) x))))
272    (
273    "
274    Scale factor  7: | 3141590.E-06|" "
275    Scale factor  6: | 314159.0E-05|" "
276    Scale factor  5: | 31415.90E-04|" "
277    Scale factor  4: | 3141.590E-03|" "
278    Scale factor  3: | 314.1590E-02|" "
279    Scale factor  2: | 31.41590E-01|" "
280    Scale factor  1: | 3.141590E+00|" "
281    Scale factor  0: | 0.314159E+01|" "
282    Scale factor -1: | 0.031416E+02|" "
283    Scale factor -2: | 0.003142E+03|" "
284    Scale factor -3: | 0.000314E+04|" "
285    Scale factor -4: | 0.000031E+05|" "
286    Scale factor -5: | 0.000003E+06|")
287    
288    
289    ; ~g ---------------------------------------------------------------------------
290    (defun foo (x)
291      (format nil "~9,2,1,,'*G|~9,3,2,3,'?,,'$G|~9,3,2,0,'%G|~9,2G"
292              x x x x))
293    foo
294    
295    (foo 0.0314159)
296    "  3.14E-2|314.2$-04|0.314E-01|  3.14E-2"
297    
298    (foo 0.314159)
299    "  0.31   |0.314    |0.314    | 0.31    "
300    
301    (foo 3.14159)
302    "   3.1   | 3.14    | 3.14    |  3.1    "
303    
304    (foo 31.4159)
305    "   31.   | 31.4    | 31.4    |  31.    "
306    
307    (foo 314.159)
308    "  3.14E+2| 314.    | 314.    |  3.14E+2"
309    
310    (foo 3141.59)
311    "  3.14E+3|314.2$+01|0.314E+04|  3.14E+3"
312    
313    (foo 3141.59L0)
314    #+XCL   "  3.14D+3|314.2$+01|0.314D+04|  3.14D+3"
315    #+CLISP "  3.14L+3|314.2$+01|0.314L+04|  3.14L+3"
316    
317    (foo 3.14E12)
318    "*********|314.0$+10|0.314E+13| 3.14E+12"
319    
320    ;(foo 3.14L120 und L1200) fehler in numerik
321    
322    ; ~a ---------------------------------------------------------------------------
323    
324    (FORMAT NIL "foo")
325    "foo"
326    
327    (FORMAT NIL "format-a:--~a--ende" (QUOTE AB\c))
328    "format-a:--ABc--ende"
329    
330    (SETQ Y "elephant")
331    "elephant"
332    
333    (FORMAT NIL "Look at the ~A!" Y)
334    "Look at the elephant!"
335    
336    (FORMAT NIL "format-%:--~%--1-newline-*")
337    "format-%:--
338    --1-newline-*"
339    
340    (FORMAT NIL "format-%:--~3%--3-newline-*")
341    "format-%:--
342    
343    
344    --3-newline-*"
345    
346    (FORMAT NIL "format-a:--~5a--ende-*" (QUOTE AB\c))
347    "format-a:--ABc  --ende-*"
348    
349    (FORMAT NIL "format-a:--~5,2a--ende-*" (QUOTE AB\c))
350    "format-a:--ABc  --ende-*"
351    
352    (FORMAT NIL "format-a:--~5,2,3a--ende-*" (QUOTE AB\c))
353    "format-a:--ABc   --ende-*"
354    
355    (FORMAT NIL "format-a:--~5,2,3,'*a--ende-*" (QUOTE AB\c))
356    "format-a:--ABc***--ende-*"
357    
358    (FORMAT NIL "format-a:--~@a--ende-*" (QUOTE AB\c))
359    "format-a:--ABc--ende-*"
360    
361    (FORMAT NIL "format-a:--~5@a--ende-*" (QUOTE AB\c))
362    "format-a:--  ABc--ende-*"
363    
364    (FORMAT NIL "format-a:--~5,2@a--ende-*" (QUOTE AB\c))
365    "format-a:--  ABc--ende-*"
366    
367    (FORMAT NIL "format-a:--~5,2,3@a--ende-*" (QUOTE AB\c))
368    "format-a:--   ABc--ende-*"
369    
370    (FORMAT NIL "format-a:--~5,2,3,'*@a--ende-*" (QUOTE AB\c))
371    "format-a:--***ABc--ende-*"
372    
373    (FORMAT NIL "format-a:--~:a--ende-*" (QUOTE (AB\c NIL XYZ)))
374    "format-a:--(ABc NIL XYZ)--ende-*"
375    
376    (FORMAT NIL "format-s:--~s--ende-*" (QUOTE AB\c))
377    #+XCL "format-s:--AB\\c--ende-*"
378    #+CLISP "format-s:--|ABc|--ende-*"
379    
380    (FORMAT NIL "format-s:--~5s--ende-*" (QUOTE AB\c))
381    #+XCL "format-s:--AB\\c --ende-*"
382    #+CLISP "format-s:--|ABc|--ende-*"
383    
384    (FORMAT NIL "format-s:--~5,2s--ende-*" (QUOTE AB\c))
385    #+XCL "format-s:--AB\\c  --ende-*"
386    #+CLISP "format-s:--|ABc|--ende-*"
387    
388    (FORMAT NIL "format-s:--~5,2,3s--ende-*" (QUOTE AB\c))
389    #+XCL "format-s:--AB\\c   --ende-*"
390    #+CLISP "format-s:--|ABc|   --ende-*"
391    
392    (FORMAT NIL "format-s:--~5,2,3,'*s--ende-*" (QUOTE AB\c))
393    #+XCL "format-s:--AB\\c***--ende-*"
394    #+CLISP "format-s:--|ABc|***--ende-*"
395    
396    (FORMAT NIL "format-s:--~@s--ende-*" (QUOTE AB\c))
397    #+XCL "format-s:--AB\\c--ende-*"
398    #+CLISP "format-s:--|ABc|--ende-*"
399    
400    (FORMAT NIL "format-s:--~5@s--ende-*" (QUOTE AB\c))
401    #+XCL "format-s:-- AB\\c--ende-*"
402    #+CLISP "format-s:--|ABc|--ende-*"
403    
404    (FORMAT NIL "format-s:--~5,2@s--ende-*" (QUOTE AB\c))
405    #+XCL "format-s:--  AB\\c--ende-*"
406    #+CLISP "format-s:--|ABc|--ende-*"
407    
408    (FORMAT NIL "format-s:--~5,2,3@s--ende-*" (QUOTE AB\c))
409    #+XCL "format-s:--   AB\\c--ende-*"
410    #+CLISP "format-s:--   |ABc|--ende-*"
411    
412    (FORMAT NIL "format-s:--~5,2,3,'*@s--ende-*" (QUOTE AB\c))
413    #+XCL "format-s:--***AB\\c--ende-*"
414    #+CLISP "format-s:--***|ABc|--ende-*"
415    
416    (FORMAT NIL "format-s:--~:s--ende-*" (QUOTE (AB\c NIL XYZ)))
417    #+XCL "format-s:--(AB\\c NIL XYZ)--ende-*"
418    #+CLISP "format-s:--(|ABc| NIL XYZ)--ende-*"
419    
420    (SETQ X 5)
421    5
422    
423    (FORMAT NIL "The answer is ~D." X)
424    "The answer is 5."
425    
426    (FORMAT NIL "The answer is ~3D." X)
427    "The answer is   5."
428    
429    (FORMAT NIL "The answer is ~3,'0D." X)
430    "The answer is 005."
431    
432    (FORMAT NIL "The answer is ~:D." (EXPT 47 X))
433    "The answer is 229,345,007."
434    
435    (FORMAT NIL "decimal:~d, width=5:~5d-*" 10 10)
436    "decimal:10, width=5:   10-*"
437    
438    (FORMAT NIL "format-d:--~d--ende-*" 123)
439    "format-d:--123--ende-*"
440    
441    (FORMAT NIL "format-d:--~10d--ende-*" 123)
442    "format-d:--       123--ende-*"
443    
444    (FORMAT NIL "format-d:--~10,'?d--ende-*" 123)
445    "format-d:--???????123--ende-*"
446    
447    (FORMAT NIL "format-d:--~@d--ende-*" 123)
448    "format-d:--+123--ende-*"
449    
450    (FORMAT NIL "format-d:--~10@d--ende-*" 123)
451    "format-d:--      +123--ende-*"
452    
453    (FORMAT NIL "format-d:--~10,'?@d--ende-*" 123)
454    "format-d:--??????+123--ende-*"
455    
456    (FORMAT NIL "format-b:--~b--ende-*" 123)
457    "format-b:--1111011--ende-*"
458    
459    (FORMAT NIL "format-b:--~10b--ende-*" 123)
460    "format-b:--   1111011--ende-*"
461    
462    (FORMAT NIL "format-b:--~10,'?b--ende-*" 123)
463    "format-b:--???1111011--ende-*"
464    
465    (FORMAT NIL "format-b:--~:b--ende-*" 123)
466    "format-b:--1,111,011--ende-*"
467    
468    (FORMAT NIL "format-b:--~10:b--ende-*" 123)
469    "format-b:-- 1,111,011--ende-*"
470    
471    (FORMAT NIL "format-b:--~10,'?:b--ende-*" 123)
472    "format-b:--?1,111,011--ende-*"
473    
474    (FORMAT NIL "format-b:--~10,'?,'.:b--ende-*" 123)
475    "format-b:--?1.111.011--ende-*"
476    
477    (FORMAT NIL "format-b:--~@b--ende-*" 123)
478    "format-b:--+1111011--ende-*"
479    
480    (FORMAT NIL "format-b:--~10@b--ende-*" 123)
481    "format-b:--  +1111011--ende-*"
482    
483    (FORMAT NIL "format-b:--~10,'?@b--ende-*" 123)
484    "format-b:--??+1111011--ende-*"
485    
486    (FORMAT NIL "format-b:--~:@b--ende-*" 123)
487    "format-b:--+1,111,011--ende-*"
488    
489    (FORMAT NIL "format-o:--~o--ende-*" 123)
490    "format-o:--173--ende-*"
491    
492    (FORMAT NIL "format-o:--~10o--ende-*" 123)
493    "format-o:--       173--ende-*"
494    
495    (FORMAT NIL "format-o:--~10,'?o--ende-*" 123)
496    "format-o:--???????173--ende-*"
497    
498    (FORMAT NIL "format-o:--~@o--ende-*" 123)
499    "format-o:--+173--ende-*"
500    
501    (FORMAT NIL "format-o:--~10@o--ende-*" 123)
502    "format-o:--      +173--ende-*"
503    
504    (FORMAT NIL "format-x:--~x--ende-*" 123)
505    "format-x:--7B--ende-*"
506    
507    (FORMAT NIL "format-x:--~10x--ende-*" 123)
508    "format-x:--        7B--ende-*"
509    
510    (FORMAT NIL "format-x:--~10,'?x--ende-*" 123)
511    "format-x:--????????7B--ende-*"
512    
513    (FORMAT NIL "format-x:--~10:x--ende-*" 123)
514    "format-x:--        7B--ende-*"
515    
516    (FORMAT NIL "format-x:--~@x--ende-*" 123)
517    "format-x:--+7B--ende-*"
518    
519    (FORMAT NIL "format-x:--~10@x--ende-*" 123)
520    "format-x:--       +7B--ende-*"
521    
522    (FORMAT NIL "format-r:--~20r--ende-*" 123)
523    "format-r:--63--ende-*"
524    
525    (FORMAT NIL "format-r:--~20,10r--ende-*" 123)
526    "format-r:--        63--ende-*"
527    
528    (FORMAT NIL "format-r:--~20@r--ende-*" 123)
529    "format-r:--+63--ende-*"
530    
531    (FORMAT NIL "format-r:--~r--ende-*" 9)
532    "format-r:--nine--ende-*"
533    
534    (FORMAT NIL "format-r:--~:r--ende-*" 9)
535    "format-r:--ninth--ende-*"
536    
537    (FORMAT NIL "format-r:--~@r--ende-*" 9)
538    "format-r:--IX--ende-*"
539    
540    (FORMAT NIL "format-r:--~:@r--ende-*" 9)
541    "format-r:--VIIII--ende-*"
542    
543    (FORMAT NIL "format-p:--~d  object~p-*" 1 1)
544    "format-p:--1  object-*"
545    
546    (FORMAT NIL "format-p:--~d  object~p-*" 2 2)
547    "format-p:--2  objects-*"
548    
549    (FORMAT NIL "format-p:--~d  bab~@p-*" 1 1)
550    "format-p:--1  baby-*"
551    
552    (FORMAT NIL "format-p:--~d  bab~@p-*" 2 2)
553    "format-p:--2  babies-*"
554    
555    (FORMAT NIL "format-p:--~d  object~:p-*" 1)
556    "format-p:--1  object-*"
557    
558    (FORMAT NIL "format-p:--~d  object~:p-*" 2)
559    "format-p:--2  objects-*"
560    
561    (FORMAT NIL "format-p:--~d  bab~:@p-*" 1)
562    "format-p:--1  baby-*"
563    
564    (FORMAT NIL "format-&:--~%~&--1-newline-*")
565    "format-&:--
566    --1-newline-*"
567    
568    (FORMAT NIL "format-&:--~%~3&--3-newline-*")
569    "format-&:--
570    
571    
572    --3-newline-*"
573    
574    (FORMAT NIL "format-tilde:--~~--1-tilde-*")
575    "format-tilde:--~--1-tilde-*"
576    
577    (FORMAT NIL "format-tilde:--~3~--3-tilden-*")
578    "format-tilde:--~~~--3-tilden-*"
579    
580    (FORMAT NIL "format-|:--~|--1-ff-*")
581    "format-|:-- --1-ff-*"
582    
583    (FORMAT NIL "format-|:--~2|--2-ff-*")
584    "format-|:-- --2-ff-*"
585    
586    (FORMAT NIL
587    "format-<nl>:~
588                             gl. zeile gl. angeschlossen trotz 2*<tab> und sp-*")
589    "format-<nl>:gl. zeile gl. angeschlossen trotz 2*<tab> und sp-*"
590    
591    (FORMAT NIL "format-<nl>:~@
592                             neue Zeile Anfang trotz <tab> + sp-*")
593    "format-<nl>:
594    neue Zeile Anfang trotz <tab> + sp-*"
595    
596    (FORMAT NIL "format-<nl>:~:
597            gleiche Zeile aber ein tab vor Anfang-*")
598    "format-<nl>:   gleiche Zeile aber ein tab vor Anfang-*"
599    
600    (FORMAT NIL "format-?:***~a***~?***~a***-*" 1 "+++~s+++~s+++" (QUOTE
601    (A B)) 2)
602    "format-?:***1***+++A+++B+++***2***-*"
603    
604    (FORMAT NIL "format-?:***~a***~?***~a***-*" 1 "+++++++++++++" NIL 2)
605    "format-?:***1***+++++++++++++***2***-*"
606    
607    (FORMAT NIL "~(AAAAAAAA BBBBBB ccccccc dddddddd~)")
608    "aaaaaaaa bbbbbb ccccccc dddddddd"
609    
610    (FORMAT NIL "~:(AAAAAAAA BBBBBB ccccccc dddddddd~)")
611    "Aaaaaaaa Bbbbbb Ccccccc Dddddddd"
612    
613    (FORMAT NIL "~@(AAAAAAAA BBBBBB ccccccc dddddddd~)")
614    "Aaaaaaaa bbbbbb ccccccc dddddddd"
615    
616    (FORMAT NIL "~:@(AAAAAAAA BBBBBB ccccccc dddddddd~)")
617    "AAAAAAAA BBBBBB CCCCCCC DDDDDDDD"
618    
619    (FORMAT NIL "++~{-=~s=-~}++" (QUOTE (1 2 3)))
620    "++-=1=--=2=--=3=-++"
621    
622    (FORMAT NIL "++~2{-=~s=-~}++" (QUOTE (1 2 3)))
623    "++-=1=--=2=-++"
624    
625    (FORMAT NIL "++~@{-=~s=-~}++" 1 2 3)
626    "++-=1=--=2=--=3=-++"
627    
628    (FORMAT NIL "++~:{-=~s=~s=-~}++" (QUOTE ((1 2) (3 4 5) (6 7))))
629    "++-=1=2=--=3=4=--=6=7=-++"
630    
631    (FORMAT NIL "++~:@{-=~s=~s=-~}++" (QUOTE (1 2)) (QUOTE (3 4 5)) (QUOTE
632    (6 7)))
633    "++-=1=2=--=3=4=--=6=7=-++"
634    
635    (FORMAT NIL "~{abc~:}")
636    #+XCL "abc" #-XCL ERROR
637    
638    (FORMAT NIL "~{~:}" "xyz")
639    #+XCL "xyz" #-XCL ERROR
640    
641    (FORMAT NIL "~1{~:}" "-~s-" (QUOTE (1 2)) 3)
642    "-1-"
643    
644    (FORMAT NIL "123456789012345678901234567890
645    ~10,4txx~10,4ty~10,4tzzz~10,4tende")
646    #+XCL
647    "123456789012345678901234567890
648             xx  y   zzz ende"
649    #-XCL
650    "123456789012345678901234567890
651              xx  y   zzz ende"
652    
653    (FORMAT NIL "123456789012345678901234567890
654    ~3,4@txx~3,4@ty~3,4@tzzz~3,4@tende")
655    #+XCL
656    "123456789012345678901234567890
657       xx      y   zzz     ende"
658    #-XCL
659    "123456789012345678901234567890
660        xx      y   zzz     ende"
661    
662    (FORMAT NIL "-~a-~a-~a-~a-" 1 2 3 4 5 6 7 8 9)
663    "-1-2-3-4-"
664    
665    (FORMAT NIL "-~a-~a-~*~a-~a-" 1 2 3 4 5 6 7 8 9)
666    "-1-2-4-5-"
667    
668    (FORMAT NIL "-~a-~a-~3*~a-~a-" 1 2 3 4 5 6 7 8 9)
669    "-1-2-6-7-"
670    
671    (FORMAT NIL "-~a-~a-~:*~a-~a-" 1 2 3 4 5 6 7 8 9)
672    "-1-2-2-3-"
673    
674    (FORMAT NIL "-~a-~a-~2:*~a-~a-" 1 2 3 4 5 6 7 8 9)
675    "-1-2-1-2-"
676    
677    (FORMAT NIL "-~a-~a-~@*~a-~a-" 1 2 3 4 5 6 7 8 9)
678    "-1-2-1-2-"
679    
680    (FORMAT NIL "-~a-~a-~6@*~a-~a-" 1 2 3 4 5 6 7 8 9)
681    "-1-2-7-8-"
682    
683    (FORMAT NIL "~[aa~;bb~;cc~]" 1)
684    "bb"
685    
686    (FORMAT NIL "~[aa~;bb~;cc~]" 10)
687    ""
688    
689    (FORMAT NIL "~2[aa~;bb~;cc~]" 10)
690    "cc"
691    
692    (FORMAT NIL "~@[aaa~]" NIL 10)
693    ""
694    
695    (FORMAT NIL "~@[aaa~]" 20 10)
696    "aaa"
697    
698    (FORMAT NIL "~@[aaa~d~]" NIL 10)
699    ""
700    
701    (FORMAT NIL "~@[aaa~d~]" 20 10)
702    "aaa20"
703    
704    (FORMAT NIL "~@[aaa~d~]bbb~d" NIL 10 30)
705    "bbb10"
706    
707    (FORMAT NIL "~@[aaa~d~]bbb~d" 20 10 30)
708    "aaa20bbb10"
709    
710    (FORMAT NIL "~:[-nil-~;-true-~d~]-ende~d" NIL 10 20)
711    "-nil--ende10"
712    
713    (FORMAT NIL "~:[-nil-~;-true-~d~]-ende~d" T 10 20)
714    "-true-10-ende20"
715    
716    (FORMAT NIL "Start test, newline:~%freshline:~&")
717    "Start test, newline:
718    freshline:
719    "
720    
721    (FORMAT NIL "decimal pad with period:~10,vd-*" #\. 12)
722    "decimal pad with period:........12-*"
723    
724    (FORMAT NIL "char normal:~c, as # would read:~@c, human read:~:c-*"
725    #\SPACE
726    #\SPACE #\SPACE)
727    #+(or XCL CMU)     "char normal: , as # would read:#\\Space, human read:Space-*"
728    #+(or CLISP LUCID) "char normal:Space, as # would read:#\\Space, human read:Space-*"
729    
730    (FORMAT NIL
731    "cardinal:~r, roman new:~@r, roman-old:~:@r~
732                    <same line I hope>~@
733                    new line but at beginning~:
734       same line, but spaced out~@
735            new line and over two tabs-*" 4 4 4)
736    "cardinal:four, roman new:IV, roman-old:IIII<same line I hope>
737    new line but at beginning   same line, but spaced out
738    new line and over two tabs-*"
739    
740    (FORMAT NIL "Type ~:C to ~A." (SET-CHAR-BIT #\D :CONTROL T)
741    "delete all your files")
742    "Type Control-D to delete all your files."
743    
744    (SETQ N 3)
745    3
746    
747    (FORMAT NIL "~D item~:P found." N)
748    "3 items found."
749    
750    (FORMAT NIL "~R dog~:[s are~; is~] here." N (= N 1))
751    "three dogs are here."
752    
753    (FORMAT NIL "~R dog~:*~[s are~; is~:;s are~] here." N)
754    "three dogs are here."
755    
756    (FORMAT NIL "Here ~[are~;is~:;are~] ~:*~R pupp~:@p." N)
757    "Here are three puppies."
758    
759    (SETQ N 1)
760    1
761    
762    (FORMAT NIL "~D item~:P found." N)
763    "1 item found."
764    
765    (FORMAT NIL "~R dog~:[s are~; is~] here." N (= N 1))
766    "one dog is here."
767    
768    (FORMAT NIL "~R dog~:*~[s are~; is~:;s are~] here." N)
769    "one dog is here."
770    
771    (FORMAT NIL "Here ~[are~;is~:;are~] ~:*~R pupp~:@p." N)
772    "Here is one puppy."
773    
774    (SETQ N 0)
775    0
776    
777    (FORMAT NIL "~D item~:P found." N)
778    "0 items found."
779    
780    (FORMAT NIL "~R dog~:[s are~; is~] here." N (= N 1))
781    "zero dogs are here."
782    
783    (FORMAT NIL "~R dog~:*~[s are~; is~:;s are~] here." N)
784    "zero dogs are here."
785    
786    (FORMAT NIL "Here ~[are~;is~:;are~] ~:*~R pupp~:@p." N)
787    "Here are zero puppies."
788    
789    (FORMAT NIL "~D tr~:@p/~D win~:P" 7 1)
790    "7 tries/1 win"
791    
792    (FORMAT NIL "~D tr~:@p/~D win~:P" 1 0)
793    "1 try/0 wins"
794    
795    (FORMAT NIL "~D tr~:@p/~D win~:P" 1 3)
796    "1 try/3 wins"
797    
798    (DEFUN TYPE-CLASH-ERROR (FN NARGS ARGNUM RIGHT-TYPE WRONG-TYPE) (FORMAT
799    NIL
800    "~&~S requires itts ~:[~:R~;~*~] ~
801               argument to be of type ~S,~%but it was called ~
802               with an argument of type ~S.-*" FN (EQL NARGS 1) ARGNUM
803    RIGHT-TYPE
804    WRONG-TYPE))
805    TYPE-CLASH-ERROR
806    
807    (TYPE-CLASH-ERROR (QUOTE AREF) NIL 2 (QUOTE INTEGER) (QUOTE VECTOR))
808    "AREF requires itts second argument to be of type INTEGER,
809    but it was called with an argument of type VECTOR.-*"
810    
811    (TYPE-CLASH-ERROR (QUOTE CAR) 1 1 (QUOTE LIST) (QUOTE SHORT-FLOAT))
812    "CAR requires itts  argument to be of type LIST,
813    but it was called with an argument of type SHORT-FLOAT.-*"
814    
815    (FORMAT NIL "~? ~D" "<~A ~D>" (QUOTE ("Foo" 5)) 7)
816    "<Foo 5> 7"
817    
818    (FORMAT NIL "~? ~D" "<~A ~D>" (QUOTE (" Foo" 5 14)) 7)
819    "< Foo 5> 7"
820    
821    (FORMAT NIL "~@? ~d" "<~A ~D>" "Foo" 5 7)
822    "<Foo 5> 7"
823    
824    (FORMAT NIL "~@? ~D" "<~A ~D>" "Foo" 5 14 7)
825    "<Foo 5> 14"
826    
827    (FORMAT NIL "~@R ~(~@R~)" 14 14)
828    "XIV xiv"
829    
830    (DEFUN F (N) (FORMAT NIL "~@(~R~) error~:P detected." N))
831    F
832    
833    (F 0)
834    "Zero errors detected."
835    
836    (F 1)
837    "One error detected."
838    
839    (F 23)
840    "Twenty-three errors detected."
841    
842    (SETQ *PRINT-LEVEL* NIL *PRINT-LENGTH* 5)
843    5
844    
845    (FORMAT NIL "~@[ print level = ~D~]~@[ print length = ~D~]" *PRINT-LEVEL*
846    
847    *PRINT-LENGTH*)
848    " print length = 5"
849    
850    (SETQ *PRINT-LENGTH* NIL)
851    NIL
852    
853    (SETQ FOO
854    "Items:~#[none~; ~s~; ~S and ~S~
855              ~:;~@{~#[~; and~] ~S~^,~}~].")
856    "Items:~#[none~; ~s~; ~S and ~S~
857              ~:;~@{~#[~; and~] ~S~^,~}~]."
858    
859    (FORMAT NIL FOO)
860    "Items:none."
861    
862    (FORMAT NIL FOO (QUOTE FOO))
863    "Items: FOO."
864    
865    (FORMAT NIL FOO (QUOTE FOO) (QUOTE BAR))
866    "Items: FOO and BAR."
867    
868    (FORMAT NIL FOO (QUOTE FOO) (QUOTE BAR) (QUOTE BAZ))
869    "Items: FOO, BAR, and BAZ."
870    
871    (FORMAT NIL FOO (QUOTE FOO) (QUOTE BAR) (QUOTE BAZ) (QUOTE QUUX))
872    "Items: FOO, BAR, BAZ, and QUUX."
873    
874    (FORMAT NIL "The winners are:~{ ~S~}." (QUOTE (FRED HARRY JILL)))
875    "The winners are: FRED HARRY JILL."
876    
877    (FORMAT NIL "Pairs:~{ <~S,~S>~}." (QUOTE (A 1 B 2 C 3)))
878    "Pairs: <A,1> <B,2> <C,3>."
879    
880    (FORMAT NIL "Pairs:~:{ <~S,~S>~}." (QUOTE ((A 1) (B 2) (C 3))))
881    "Pairs: <A,1> <B,2> <C,3>."
882    
883    (FORMAT NIL "Pairs:~@{ <~S,~S>~}." (QUOTE A) 1 (QUOTE B) 2 (QUOTE C)
884    3)
885    "Pairs: <A,1> <B,2> <C,3>."
886    
887    (FORMAT NIL "Pairs:~:@{ <~S,~S>~}." (QUOTE (A 1)) (QUOTE (B 2)) (QUOTE
888    (C 3)))
889    "Pairs: <A,1> <B,2> <C,3>."
890    
891    (SETQ DONESTR "done.~^ ~D warning~:P.~^ ~D error~:P.")
892    "done.~^ ~D warning~:P.~^ ~D error~:P."
893    
894    (FORMAT NIL DONESTR)
895    "done."
896    
897    (FORMAT NIL DONESTR 3)
898    "done. 3 warnings."
899    
900    (FORMAT NIL DONESTR 1 5)
901    "done. 1 warning. 5 errors."
902    
903    (SETQ TELLSTR "~@(~@[~R~]~^ ~A.~)")
904    "~@(~@[~R~]~^ ~A.~)"
905    
906    (FORMAT NIL TELLSTR 23)
907    "Twenty-three"
908    
909    (FORMAT NIL TELLSTR NIL "losers")
910    " Losers."
911    
912    (FORMAT NIL TELLSTR 23 "losers")
913    "Twenty-three losers."
914    
915    (FORMAT NIL "**~c**" #\SPACE)
916    #+(or XCL CMU)     "** **"
917    #+(or CLISP LUCID) "**Space**"
918    
919    (FORMAT NIL "**~:c**" #\SPACE)
920    "**Space**"
921    
922    (FORMAT NIL "**~:@c**" #\SPACE)
923    "**Space**"
924    
925    (FORMAT NIL "**~@c**" #\SPACE)
926    "**#\\Space**"
927    
928    (FORMAT NIL "**~c**" #\C-SPACE)
929    #+XCL "** **"
930    #+(or CLISP LUCID) "**C-Space**"
931    
932    (FORMAT NIL "**~:c**" #\C-SPACE)
933    "**Control-Space**"
934    
935    (FORMAT NIL "**~:@c**" #\C-SPACE)
936    "**Control-Space**"
937    
938    (FORMAT NIL "**~@c**" #\C-SPACE)
939    "**#\\Control-Space**"
940    
941    (FORMAT NIL "**~c**" #\C-A)
942    #+XCL "**A**"
943    #+(or CLISP LUCID) "**C-A**"
944    
945    (FORMAT NIL "**~:c**" #\C-A)
946    "**Control-A**"
947    
948    (FORMAT NIL "**~:@c**" #\C-A)
949    "**Control-A**"
950    
951    (FORMAT NIL "**~@c**" #\C-A)
952    "**#\\Control-A**"
953    
954    (FORMAT NIL "**~c**" #\A)
955    "**A**"
956    
957    (FORMAT NIL "**~:c**" #\A)
958    "**A**"
959    
960    (FORMAT NIL "**~:@c**" #\A)
961    "**A**"
962    
963    (FORMAT NIL "**~@c**" #\A)
964    "**#\\A**"
965    
966    #+XCL (FORMAT NIL "**~c**" (CODE-CHAR 26))
967    #+XCL "****"
968    #+CLISP (FORMAT NIL "**~c**" (CODE-CHAR 27))
969    #+CLISP "**Escape**"
970    
971    #+XCL (FORMAT NIL "**~:c**" (CODE-CHAR 26))
972    #+XCL "**Z**"
973    #+CLISP (FORMAT NIL "**~:c**" (CODE-CHAR 27))
974    #+CLISP "**Escape**"
975    
976    #+XCL (FORMAT NIL "**~:@c**" (CODE-CHAR 26))
977    #+XCL "**^Z**"
978    #+CLISP (FORMAT NIL "**~:@c**" (CODE-CHAR 27))
979    #+CLISP "**Escape**"
980    
981    #+XCL (FORMAT NIL "**~@c**" (CODE-CHAR 26))
982    #+XCL "**#\\**"
983    #+CLISP (FORMAT NIL "**~@c**" (CODE-CHAR 27))
984    #+CLISP "**#\\Escape**"
985    
986    #+XCL (FORMAT NIL "**~c**" (CODE-CHAR 26 1))
987    #+XCL "****"
988    #+CLISP (FORMAT NIL "**~c**" (CODE-CHAR 27 1))
989    #+CLISP "**C-Escape**"
990    
991    #+XCL (FORMAT NIL "**~:c**" (CODE-CHAR 26 1))
992    #+XCL "**Control-**"
993    #+CLISP (FORMAT NIL "**~:c**" (CODE-CHAR 27 1))
994    #+CLISP "**Control-Escape**"
995    
996    #+XCL (FORMAT NIL "**~:@c**" (CODE-CHAR 26 1))
997    #+XCL "**Control-**"
998    #+CLISP (FORMAT NIL "**~:@c**" (CODE-CHAR 27 1))
999    #+CLISP "**Control-Escape**"
1000    
1001    #+XCL (FORMAT NIL "**~@c**" (CODE-CHAR 26 1))
1002    #+XCL "**#\\Control-**"
1003    #+CLISP (FORMAT NIL "**~@c**" (CODE-CHAR 27 1))
1004    #+CLISP "**#\\Control-Escape**"
1005    
1006    (progn (fmakunbound 'foo)
1007           (makunbound 'liste)
1008    t)
1009    T
1010    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26