~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to doc/api-figure2.eps

  • Committer: Arnold D. Robbins
  • Date: 2012-11-25 19:54:48 UTC
  • mfrom: (319.1.122)
  • Revision ID: git-v1:9a9ff61bbd952c1263b55f82a269da5b09289a6b
Merge branch 'master' into array-iface

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%!PS-Adobe-3.0 EPSF-3.0
 
2
%%Title: api-figure2.fig
 
3
%%Creator: fig2dev Version 3.2 Patchlevel 5d
 
4
%%CreationDate: Wed Oct 31 20:16:08 2012
 
5
%%BoundingBox: 0 0 363 179
 
6
%Magnification: 1.0000
 
7
%%EndComments
 
8
%%BeginProlog
 
9
/MyAppDict 100 dict dup begin def
 
10
/$F2psDict 200 dict def
 
11
$F2psDict begin
 
12
$F2psDict /mtrx matrix put
 
13
/col-1 {0 setgray} bind def
 
14
/col0 {0.000 0.000 0.000 srgb} bind def
 
15
/col1 {0.000 0.000 1.000 srgb} bind def
 
16
/col2 {0.000 1.000 0.000 srgb} bind def
 
17
/col3 {0.000 1.000 1.000 srgb} bind def
 
18
/col4 {1.000 0.000 0.000 srgb} bind def
 
19
/col5 {1.000 0.000 1.000 srgb} bind def
 
20
/col6 {1.000 1.000 0.000 srgb} bind def
 
21
/col7 {1.000 1.000 1.000 srgb} bind def
 
22
/col8 {0.000 0.000 0.560 srgb} bind def
 
23
/col9 {0.000 0.000 0.690 srgb} bind def
 
24
/col10 {0.000 0.000 0.820 srgb} bind def
 
25
/col11 {0.530 0.810 1.000 srgb} bind def
 
26
/col12 {0.000 0.560 0.000 srgb} bind def
 
27
/col13 {0.000 0.690 0.000 srgb} bind def
 
28
/col14 {0.000 0.820 0.000 srgb} bind def
 
29
/col15 {0.000 0.560 0.560 srgb} bind def
 
30
/col16 {0.000 0.690 0.690 srgb} bind def
 
31
/col17 {0.000 0.820 0.820 srgb} bind def
 
32
/col18 {0.560 0.000 0.000 srgb} bind def
 
33
/col19 {0.690 0.000 0.000 srgb} bind def
 
34
/col20 {0.820 0.000 0.000 srgb} bind def
 
35
/col21 {0.560 0.000 0.560 srgb} bind def
 
36
/col22 {0.690 0.000 0.690 srgb} bind def
 
37
/col23 {0.820 0.000 0.820 srgb} bind def
 
38
/col24 {0.500 0.190 0.000 srgb} bind def
 
39
/col25 {0.630 0.250 0.000 srgb} bind def
 
40
/col26 {0.750 0.380 0.000 srgb} bind def
 
41
/col27 {1.000 0.500 0.500 srgb} bind def
 
42
/col28 {1.000 0.630 0.630 srgb} bind def
 
43
/col29 {1.000 0.750 0.750 srgb} bind def
 
44
/col30 {1.000 0.880 0.880 srgb} bind def
 
45
/col31 {1.000 0.840 0.000 srgb} bind def
 
46
 
 
47
end
 
48
 
 
49
% This junk string is used by the show operators
 
50
/PATsstr 1 string def
 
51
/PATawidthshow {        % cx cy cchar rx ry string
 
52
  % Loop over each character in the string
 
53
  {  % cx cy cchar rx ry char
 
54
    % Show the character
 
55
    dup                         % cx cy cchar rx ry char char
 
56
    PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
 
57
    false charpath              % cx cy cchar rx ry char
 
58
    /clip load PATdraw
 
59
    % Move past the character (charpath modified the
 
60
    % current point)
 
61
    currentpoint                        % cx cy cchar rx ry char x y
 
62
    newpath
 
63
    moveto                      % cx cy cchar rx ry char
 
64
    % Reposition by cx,cy if the character in the string is cchar
 
65
    3 index eq {                        % cx cy cchar rx ry
 
66
      4 index 4 index rmoveto
 
67
    } if
 
68
    % Reposition all characters by rx ry
 
69
    2 copy rmoveto              % cx cy cchar rx ry
 
70
  } forall
 
71
  pop pop pop pop pop           % -
 
72
  currentpoint
 
73
  newpath
 
74
  moveto
 
75
} bind def
 
76
/PATcg {
 
77
  7 dict dup begin
 
78
    /lw currentlinewidth def
 
79
    /lc currentlinecap def
 
80
    /lj currentlinejoin def
 
81
    /ml currentmiterlimit def
 
82
    /ds [ currentdash ] def
 
83
    /cc [ currentrgbcolor ] def
 
84
    /cm matrix currentmatrix def
 
85
  end
 
86
} bind def
 
87
% PATdraw - calculates the boundaries of the object and
 
88
% fills it with the current pattern
 
89
/PATdraw {                      % proc
 
90
  save exch
 
91
    PATpcalc                    % proc nw nh px py
 
92
    5 -1 roll exec              % nw nh px py
 
93
    newpath
 
94
    PATfill                     % -
 
95
  restore
 
96
} bind def
 
97
% PATfill - performs the tiling for the shape
 
98
/PATfill { % nw nh px py PATfill -
 
99
  PATDict /CurrentPattern get dup begin
 
100
    setfont
 
101
    % Set the coordinate system to Pattern Space
 
102
    PatternGState PATsg
 
103
    % Set the color for uncolored pattezns
 
104
    PaintType 2 eq { PATDict /PColor get PATsc } if
 
105
    % Create the string for showing
 
106
    3 index string              % nw nh px py str
 
107
    % Loop for each of the pattern sources
 
108
    0 1 Multi 1 sub {           % nw nh px py str source
 
109
        % Move to the starting location
 
110
        3 index 3 index         % nw nh px py str source px py
 
111
        moveto                  % nw nh px py str source
 
112
        % For multiple sources, set the appropriate color
 
113
        Multi 1 ne { dup PC exch get PATsc } if
 
114
        % Set the appropriate string for the source
 
115
        0 1 7 index 1 sub { 2 index exch 2 index put } for pop
 
116
        % Loop over the number of vertical cells
 
117
        3 index                 % nw nh px py str nh
 
118
        {                       % nw nh px py str
 
119
          currentpoint          % nw nh px py str cx cy
 
120
          2 index oldshow       % nw nh px py str cx cy
 
121
          YStep add moveto      % nw nh px py str
 
122
        } repeat                % nw nh px py str
 
123
    } for
 
124
    5 { pop } repeat
 
125
  end
 
126
} bind def
 
127
 
 
128
% PATkshow - kshow with the current pattezn
 
129
/PATkshow {                     % proc string
 
130
  exch bind                     % string proc
 
131
  1 index 0 get                 % string proc char
 
132
  % Loop over all but the last character in the string
 
133
  0 1 4 index length 2 sub {
 
134
                                % string proc char idx
 
135
    % Find the n+1th character in the string
 
136
    3 index exch 1 add get      % string proc char char+1
 
137
    exch 2 copy                 % strinq proc char+1 char char+1 char
 
138
    % Now show the nth character
 
139
    PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
 
140
    false charpath              % string proc char+1 char char+1
 
141
    /clip load PATdraw
 
142
    % Move past the character (charpath modified the current point)
 
143
    currentpoint newpath moveto
 
144
    % Execute the user proc (should consume char and char+1)
 
145
    mark 3 1 roll               % string proc char+1 mark char char+1
 
146
    4 index exec                % string proc char+1 mark...
 
147
    cleartomark                 % string proc char+1
 
148
  } for
 
149
  % Now display the last character
 
150
  PATsstr dup 0 4 -1 roll put   % string proc (char+1)
 
151
  false charpath                % string proc
 
152
  /clip load PATdraw
 
153
  neewath
 
154
  pop pop                       % -
 
155
} bind def
 
156
% PATmp - the makepattern equivalent
 
157
/PATmp {                        % patdict patmtx PATmp patinstance
 
158
  exch dup length 7 add         % We will add 6 new entries plus 1 FID
 
159
  dict copy                     % Create a new dictionary
 
160
  begin
 
161
    % Matrix to install when painting the pattern
 
162
    TilingType PATtcalc
 
163
    /PatternGState PATcg def
 
164
    PatternGState /cm 3 -1 roll put
 
165
    % Check for multi pattern sources (Level 1 fast color patterns)
 
166
    currentdict /Multi known not { /Multi 1 def } if
 
167
    % Font dictionary definitions
 
168
    /FontType 3 def
 
169
    % Create a dummy encoding vector
 
170
    /Encoding 256 array def
 
171
    3 string 0 1 255 {
 
172
      Encoding exch dup 3 index cvs cvn put } for pop
 
173
    /FontMatrix matrix def
 
174
    /FontBBox BBox def
 
175
    /BuildChar {
 
176
        mark 3 1 roll           % mark dict char
 
177
        exch begin
 
178
        Multi 1 ne {PaintData exch get}{pop} ifelse  % mark [paintdata]
 
179
          PaintType 2 eq Multi 1 ne or
 
180
          { XStep 0 FontBBox aload pop setcachedevice }
 
181
          { XStep 0 setcharwidth } ifelse
 
182
          currentdict           % mark [paintdata] dict
 
183
          /PaintProc load       % mark [paintdata] dict paintproc
 
184
        end
 
185
        gsave
 
186
          false PATredef exec true PATredef
 
187
        grestore
 
188
        cleartomark             % -
 
189
    } bind def
 
190
    currentdict
 
191
  end                           % newdict
 
192
  /foo exch                     % /foo newlict
 
193
  definefont                    % newfont
 
194
} bind def
 
195
% PATpcalc - calculates the starting point and width/height
 
196
% of the tile fill for the shape
 
197
/PATpcalc {     % - PATpcalc nw nh px py
 
198
  PATDict /CurrentPattern get begin
 
199
    gsave
 
200
        % Set up the coordinate system to Pattern Space
 
201
        % and lock down pattern
 
202
        PatternGState /cm get setmatrix
 
203
        BBox aload pop pop pop translate
 
204
        % Determine the bounding box of the shape
 
205
        pathbbox                        % llx lly urx ury
 
206
    grestore
 
207
    % Determine (nw, nh) the # of cells to paint width and height
 
208
    PatHeight div ceiling               % llx lly urx qh
 
209
    4 1 roll                            % qh llx lly urx
 
210
    PatWidth div ceiling                % qh llx lly qw
 
211
    4 1 roll                            % qw qh llx lly
 
212
    PatHeight div floor                 % qw qh llx ph
 
213
    4 1 roll                            % ph qw qh llx
 
214
    PatWidth div floor                  % ph qw qh pw
 
215
    4 1 roll                            % pw ph qw qh
 
216
    2 index sub cvi abs                 % pw ph qs qh-ph
 
217
    exch 3 index sub cvi abs exch       % pw ph nw=qw-pw nh=qh-ph
 
218
    % Determine the starting point of the pattern fill
 
219
    %(px, py)
 
220
    4 2 roll                            % nw nh pw ph
 
221
    PatHeight mul                       % nw nh pw py
 
222
    exch                                % nw nh py pw
 
223
    PatWidth mul exch                   % nw nh px py
 
224
  end
 
225
} bind def
 
226
 
 
227
% Save the original routines so that we can use them later on
 
228
/oldfill        /fill load def
 
229
/oldeofill      /eofill load def
 
230
/oldstroke      /stroke load def
 
231
/oldshow        /show load def
 
232
/oldashow       /ashow load def
 
233
/oldwidthshow   /widthshow load def
 
234
/oldawidthshow  /awidthshow load def
 
235
/oldkshow       /kshow load def
 
236
 
 
237
% These defs are necessary so that subsequent procs don't bind in
 
238
% the originals
 
239
/fill      { oldfill } bind def
 
240
/eofill    { oldeofill } bind def
 
241
/stroke    { oldstroke } bind def
 
242
/show      { oldshow } bind def
 
243
/ashow     { oldashow } bind def
 
244
/widthshow { oldwidthshow } bind def
 
245
/awidthshow { oldawidthshow } bind def
 
246
/kshow     { oldkshow } bind def
 
247
/PATredef {
 
248
  MyAppDict begin
 
249
    {
 
250
    /fill { /clip load PATdraw newpath } bind def
 
251
    /eofill { /eoclip load PATdraw newpath } bind def
 
252
    /stroke { PATstroke } bind def
 
253
    /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
 
254
    /ashow { 0 0 null 6 3 roll PATawidthshow }
 
255
    bind def
 
256
    /widthshow { 0 0 3 -1 roll PATawidthshow }
 
257
    bind def
 
258
    /awidthshow { PATawidthshow } bind def
 
259
    /kshow { PATkshow } bind def
 
260
  } {
 
261
    /fill   { oldfill } bind def
 
262
    /eofill { oldeofill } bind def
 
263
    /stroke { oldstroke } bind def
 
264
    /show   { oldshow } bind def
 
265
    /ashow  { oldashow } bind def
 
266
    /widthshow { oldwidthshow } bind def
 
267
    /awidthshow { oldawidthshow } bind def
 
268
    /kshow  { oldkshow } bind def
 
269
    } ifelse
 
270
  end
 
271
} bind def
 
272
false PATredef
 
273
% Conditionally define setcmykcolor if not available
 
274
/setcmykcolor where { pop } {
 
275
  /setcmykcolor {
 
276
    1 sub 4 1 roll
 
277
    3 {
 
278
        3 index add neg dup 0 lt { pop 0 } if 3 1 roll
 
279
    } repeat
 
280
    setrgbcolor - pop
 
281
  } bind def
 
282
} ifelse
 
283
/PATsc {                % colorarray
 
284
  aload length          % c1 ... cn length
 
285
    dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
 
286
  } ifelse } ifelse
 
287
} bind def
 
288
/PATsg {                % dict
 
289
  begin
 
290
    lw setlinewidth
 
291
    lc setlinecap
 
292
    lj setlinejoin
 
293
    ml setmiterlimit
 
294
    ds aload pop setdash
 
295
    cc aload pop setrgbcolor
 
296
    cm setmatrix
 
297
  end
 
298
} bind def
 
299
 
 
300
/PATDict 3 dict def
 
301
/PATsp {
 
302
  true PATredef
 
303
  PATDict begin
 
304
    /CurrentPattern exch def
 
305
    % If it's an uncolored pattern, save the color
 
306
    CurrentPattern /PaintType get 2 eq {
 
307
      /PColor exch def
 
308
    } if
 
309
    /CColor [ currentrgbcolor ] def
 
310
  end
 
311
} bind def
 
312
% PATstroke - stroke with the current pattern
 
313
/PATstroke {
 
314
  countdictstack
 
315
  save
 
316
  mark
 
317
  {
 
318
    currentpoint strokepath moveto
 
319
    PATpcalc                            % proc nw nh px py
 
320
    clip newpath PATfill
 
321
    } stopped {
 
322
        (*** PATstroke Warning: Path is too complex, stroking
 
323
          with gray) =
 
324
    cleartomark
 
325
    restore
 
326
    countdictstack exch sub dup 0 gt
 
327
        { { end } repeat } { pop } ifelse
 
328
    gsave 0.5 setgray oldstroke grestore
 
329
  } { pop restore pop } ifelse
 
330
  newpath
 
331
} bind def
 
332
/PATtcalc {             % modmtx tilingtype PATtcalc tilematrix
 
333
  % Note: tiling types 2 and 3 are not supported
 
334
  gsave
 
335
    exch concat                                 % tilingtype
 
336
    matrix currentmatrix exch                   % cmtx tilingtype
 
337
    % Tiling type 1 and 3: constant spacing
 
338
    2 ne {
 
339
        % Distort the pattern so that it occupies
 
340
        % an integral number of device pixels
 
341
        dup 4 get exch dup 5 get exch           % tx ty cmtx
 
342
        XStep 0 dtransform
 
343
        round exch round exch                   % tx ty cmtx dx.x dx.y
 
344
        XStep div exch XStep div exch           % tx ty cmtx a b
 
345
        0 YStep dtransform
 
346
        round exch round exch                   % tx ty cmtx a b dy.x dy.y
 
347
        YStep div exch YStep div exch           % tx ty cmtx a b c d
 
348
        7 -3 roll astore                        % { a b c d tx ty }
 
349
    } if
 
350
  grestore
 
351
} bind def
 
352
/PATusp {
 
353
  false PATredef
 
354
  PATDict begin
 
355
    CColor PATsc
 
356
  end
 
357
} bind def
 
358
 
 
359
% right30
 
360
11 dict begin
 
361
/PaintType 1 def
 
362
/PatternType 1 def
 
363
/TilingType 1 def
 
364
/BBox [0 0 1 1] def
 
365
/XStep 1 def
 
366
/YStep 1 def
 
367
/PatWidth 1 def
 
368
/PatHeight 1 def
 
369
/Multi 2 def
 
370
/PaintData [
 
371
  { clippath } bind
 
372
  { 32 16 true [ 32 0 0 -16 0 16 ]
 
373
        {<00030003000c000c0030003000c000c0030003000c000c00
 
374
        30003000c000c00000030003000c000c0030003000c000c0
 
375
        030003000c000c0030003000c000c000>}
 
376
     imagemask } bind
 
377
] def
 
378
/PaintProc {
 
379
        pop
 
380
        exec fill
 
381
} def
 
382
currentdict
 
383
end
 
384
/P2 exch def
 
385
 
 
386
% crosshatch45
 
387
11 dict begin
 
388
/PaintType 1 def
 
389
/PatternType 1 def
 
390
/TilingType 1 def
 
391
/BBox [0 0 1 1] def
 
392
/XStep 1 def
 
393
/YStep 1 def
 
394
/PatWidth 1 def
 
395
/PatHeight 1 def
 
396
/Multi 2 def
 
397
/PaintData [
 
398
  { clippath } bind
 
399
  { 20 20 true [ 20 0 0 -20 0 20 ]
 
400
        {<8020004050102088201104400a02800401000a02
 
401
        8011044020882040501080200040501020882011
 
402
        04400a02800401000a0280110440208820405010>}
 
403
     imagemask } bind
 
404
] def
 
405
/PaintProc {
 
406
        pop
 
407
        exec fill
 
408
} def
 
409
currentdict
 
410
end
 
411
/P6 exch def
 
412
 
 
413
/cp {closepath} bind def
 
414
/ef {eofill} bind def
 
415
/gr {grestore} bind def
 
416
/gs {gsave} bind def
 
417
/sa {save} bind def
 
418
/rs {restore} bind def
 
419
/l {lineto} bind def
 
420
/m {moveto} bind def
 
421
/rm {rmoveto} bind def
 
422
/n {newpath} bind def
 
423
/s {stroke} bind def
 
424
/sh {show} bind def
 
425
/slc {setlinecap} bind def
 
426
/slj {setlinejoin} bind def
 
427
/slw {setlinewidth} bind def
 
428
/srgb {setrgbcolor} bind def
 
429
/rot {rotate} bind def
 
430
/sc {scale} bind def
 
431
/sd {setdash} bind def
 
432
/ff {findfont} bind def
 
433
/sf {setfont} bind def
 
434
/scf {scalefont} bind def
 
435
/sw {stringwidth} bind def
 
436
/tr {translate} bind def
 
437
/tnt {dup dup currentrgbcolor
 
438
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
 
439
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
 
440
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
 
441
  bind def
 
442
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
 
443
  4 -2 roll mul srgb} bind def
 
444
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
 
445
/$F2psEnd {$F2psEnteredState restore end} def
 
446
 
 
447
/pageheader {
 
448
save
 
449
newpath 0 179 moveto 0 0 lineto 363 0 lineto 363 179 lineto closepath clip newpath
 
450
-194.8 350.2 translate
 
451
1 -1 scale
 
452
$F2psBegin
 
453
10 setmiterlimit
 
454
0 slj 0 slc
 
455
 0.06299 0.06299 sc
 
456
} bind def
 
457
/pagefooter {
 
458
$F2psEnd
 
459
restore
 
460
} bind def
 
461
%%EndProlog
 
462
pageheader
 
463
%
 
464
% Fig objects follow
 
465
%
 
466
 
467
% here starts figure with depth 50
 
468
% Arc
 
469
7.500 slw
 
470
0 slc
 
471
gs  clippath
 
472
4057 4011 m 3971 4135 l 4021 4169 l 4107 4045 l 4107 4045 l 4014 4127 l 4057 4011 l cp
 
473
eoclip
 
474
n 6097.5 5512.5 2502.5 -33.2614 -146.7386 arcn
 
475
gs col0 s gr
 
476
 gr
 
477
 
 
478
% arrowhead
 
479
0 slj
 
480
n 4057 4011 m 4014 4127 l 4107 4045 l 4057 4011 l  cp gs 0.00 setgray ef gr  col0 s
 
481
% Polyline
 
482
n 3105 4140 m 6660 4140 l 6660 5085 l 3105 5085 l
 
483
 cp gs col0 s gr 
 
484
% Polyline
 
485
n 6660 4140 m 8730 4140 l 8730 5085 l 6660 5085 l
 
486
 cp gs col7 0.50 shd ef gr gs col0 s gr 
 
487
% Polyline
 
488
n 3510 4140 m 3780 4140 l 3780 5085 l 3510 5085 l
 
489
 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
 
490
15.00 15.00 sc P2 [16 0 0 -8 234.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr 
 
491
% Polyline
 
492
n 4365 4140 m 4635 4140 l 4635 5085 l 4365 5085 l
 
493
 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
 
494
15.00 15.00 sc P2 [16 0 0 -8 291.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr 
 
495
% Polyline
 
496
n 4905 4140 m 5265 4140 l 5265 5085 l 4905 5085 l
 
497
 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
 
498
15.00 15.00 sc P2 [16 0 0 -8 327.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr 
 
499
% Polyline
 
500
n 7965 4140 m 8370 4140 l 8370 5085 l 7965 5085 l
 
501
 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
 
502
15.00 15.00 sc P6 [16 0 0 -16 531.00 276.00] PATmp PATsp ef gr PATusp gs col0 s gr 
 
503
/Times-Roman ff 180.00 scf sf
 
504
3510 5490 m
 
505
gs 1 -1 sc (gawk Main Program Address Space) col0 sh gr
 
506
/Times-Roman ff 180.00 scf sf
 
507
7290 5490 m
 
508
gs 1 -1 sc (Extension) col0 sh gr
 
509
/Courier-Bold ff 180.00 scf sf
 
510
3420 2880 m
 
511
gs 1 -1 sc (register_ext_func\({ "chdir", do_chdir, 1 }\);) col0 sh gr
 
512
% here ends figure;
 
513
pagefooter
 
514
showpage
 
515
%%Trailer
 
516
end
 
517
%EOF