1      SUBROUTINE GSCHAR2(X,Y,N,CHAINE)
2      INCLUDE 'Parametres.f'
3      REAL*4 X,Y
4      CHARACTER*1024 CHAINE,CHCH
5      logical*4 assezloin
6      if(n.le.0) return
7      if (assezloin(x,y)) return
8      nn = min(1024,n)
9      if (ipostscript.eq.1) then
10        IX = origine_x + facteur_en_x*X
11        IY = origine_y + facteur_en_y*Y
12        CHCH = CHAINE(1:NN)//char(0)
13        IF (icoul_texte.ne.icoul_courante) then
14          call x11loadcolor(icoul_texte)
15          if (angle_texte.eq.0.) then
16            if (ifonte_courante.eq.5) then
17              call x11txtsrnrot2(CHCH,nn,ix,iy,icoulfond,angle_texte)
18            else
19              call x11txtsrn2(CHCH,NN,ix,iy,icoulfond)
20            endif
21          else
22            call x11txtsrnrot2(CHCH,nn,ix,iy,icoulfond,angle_texte)
23          endif
24          call x11loadcolor(icoul_courante)
25c
26        else
27          if (angle_texte.eq.0.) then
28            if (ifonte_courante.eq.5) then
29              call x11txtsrnrot2(CHCH,nn,ix,iy,icoulfond,angle_texte)
30            else
31              call x11txtsrn2(CHCH,NN,ix,iy,icoulfond)
32            endif
33          else
34            call x11txtsrnrot2(CHCH,nn,ix,iy,icoulfond,angle_texte)
35          endif
36        endif
37      else
38        if (sauve_graphic) return
39        xxxx = origine_x + facteur_en_x*X
40        yyyy = origine_y + facteur_en_y*Y
41        call parenthese_ps(chch,nn)
42        IF (ipostscript.ne.-1.and.icoul_texte.ne.icoul_eff) then
43          write(ilaser_file,'(f4.2,2f5.2,a)') table_rouge(icoul_texte)
44     &                                       ,table_vert(icoul_texte)
45     &                                       ,table_bleu(icoul_texte)
46     &                                       ,' c'
47          call ecriseconome(ilaser_file,xxxx,0,'bidon')
48          call ecriseconome(ilaser_file,yyyy,nn+7,
49     &                     ' 0 ('//chaine(1:nn)//') E')
50          write(ilaser_file,'(f4.2,2f5.2,a)')
51     &          table_rouge(icoul_eff)
52     &         ,table_vert(icoul_eff)
53     &         ,table_bleu(icoul_eff)
54     &         ,' c'
55        else
56          call ecriseconome(ilaser_file,xxxx,0,'bidon')
57          call ecriseconome(ilaser_file,yyyy,nn+7,
58     &                     ' 0 ('//chaine(1:nn)//') E')
59        endif
60      endif
61      end
62