View | Details | Raw Unified | Return to bug 9460
Collapse All | Expand All

(-)/usr/src/webalizer-2.01-10/graphs.c (-62 / +120 lines)
Lines 27-32 Link Here
27
*/
27
*/
28
28
29
#include <math.h>
29
#include <math.h>
30
#include <stdlib.h>
30
#include <stdio.h>
31
#include <stdio.h>
31
#include <string.h>
32
#include <string.h>
32
#include <sys/types.h>
33
#include <sys/types.h>
Lines 34-39 Link Here
34
#include <gdfontt.h>
35
#include <gdfontt.h>
35
#include <gdfonts.h>
36
#include <gdfonts.h>
36
#include <gdfontmb.h>
37
#include <gdfontmb.h>
38
#include <iconv.h>
37
39
38
#include "webalizer.h"
40
#include "webalizer.h"
39
#include "lang.h"
41
#include "lang.h"
Lines 60-65 Link Here
60
62
61
void    init_graph(char *, int, int);
63
void    init_graph(char *, int, int);
62
struct  pie_data *calc_arc(float, float);
64
struct  pie_data *calc_arc(float, float);
65
int koi2utf(char *code, char *buf, int out_len);
66
void gdImageStringRus(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color);
67
void gdImageStringUpRus(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color);
63
68
64
/* common public declarations */
69
/* common public declarations */
65
70
Lines 73-78 Link Here
73
float		percent;                   /* percent storage     */
78
float		percent;                   /* percent storage     */
74
u_long		julday;                    /* julday value        */
79
u_long		julday;                    /* julday value        */
75
80
81
int koi2utf(char *code, char *buf, int out_len) {
82
  iconv_t cd;
83
  size_t k, f, t;
84
  int se;
85
  const char* in = code;
86
  char* out = buf;
87
88
  cd = iconv_open("UTF-8", "KOI8-R");
89
  if( cd == (iconv_t)(-1) )
90
    perror("iconv_open");
91
  f = strlen(code);
92
  t = out_len;
93
  memset( buf, 0, out_len);
94
  errno = 0;
95
  k = iconv(cd, (char **)&in, &f, &out, &t);
96
  se = errno;
97
  if(se != 0) {
98
    perror("Error converting");
99
    return 1;
100
  }
101
  
102
  iconv_close(cd);
103
  return 0;
104
}
105
106
void gdImageStringRus(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)
107
{
108
int rect[8];
109
char *buf;
110
int buflen;
111
112
   buflen = strlen(s) * 2; // Unicode string
113
   buf = (char *)malloc(buflen);
114
   koi2utf(s, buf, buflen);
115
   gdImageStringFT(NULL, &rect[0], color, FontName, FontSize, 0.0, x, y, buf);
116
   gdImageStringFT(im, &rect[0], color, FontName, FontSize, 0.0, x, y+FontSize, buf);
117
   free(buf);
118
}
119
120
void gdImageStringUpRus(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)
121
{
122
int rect[8];
123
char *buf;
124
int buflen;
125
126
   buflen = strlen(s) * 2; // Unicode string
127
   buf = (char *)malloc(buflen);
128
   koi2utf(s, buf, buflen);
129
   gdImageStringFT(NULL, &rect[0], color, FontName, FontSize, 1.57, x, y, buf);
130
   gdImageStringFT(im, &rect[0], color, FontName, FontSize, 1.57, x+FontSize, y, buf);
131
   free(buf);
132
}
133
   
76
struct pie_data { int x; int y;            /* line x,y            */
134
struct pie_data { int x; int y;            /* line x,y            */
77
                  int mx; int my; };       /* midpoint x,y        */
135
                  int mx; int my; };       /* midpoint x,y        */
78
/* colors */
136
/* colors */
Lines 128-134 Link Here
128
   s_mth = fmonth;
186
   s_mth = fmonth;
129
   for (i=0;i<12;i++)
187
   for (i=0;i<12;i++)
130
   {
188
   {
131
      gdImageString(im,gdFontSmall,28+(i*23),             /* use language   */
189
      gdImageStringRus(im,gdFontSmall,28+(i*23),          /* use language   */
132
                    238,s_month[s_mth-1],black);          /* specific array */
190
                    238,s_month[s_mth-1],black);          /* specific array */
133
      s_mth++;
191
      s_mth++;
134
      if (s_mth > 12) s_mth = 1;
192
      if (s_mth > 12) s_mth = 1;
Lines 138-175 Link Here
138
   }
196
   }
139
   if (maxval <= 0) maxval = 1;
197
   if (maxval <= 0) maxval = 1;
140
   sprintf(maxvaltxt, "%lu", maxval);
198
   sprintf(maxvaltxt, "%lu", maxval);
141
   gdImageStringUp(im,gdFontSmall,8,26+(strlen(maxvaltxt)*6),maxvaltxt,black);
199
   gdImageStringUpRus(im,gdFontSmall,8,26+(strlen(maxvaltxt)*6),maxvaltxt,black);
142
200
143
   if (graph_legend)                          /* print color coded legends? */
201
   if (graph_legend)                          /* print color coded legends? */
144
   {
202
   {
145
      /* Kbytes Legend */
203
      /* Kbytes Legend */
146
      i = (strlen(msg_h_xfer)*6);
204
      i = (strlen(msg_h_xfer)*6);
147
      gdImageString(im,gdFontSmall,491-i,239,msg_h_xfer,dkgrey);
205
      gdImageStringRus(im,gdFontSmall,491-i,239,msg_h_xfer,dkgrey);
148
      gdImageString(im,gdFontSmall,490-i,238,msg_h_xfer,COLOR4);
206
      gdImageStringRus(im,gdFontSmall,490-i,238,msg_h_xfer,COLOR4);
149
207
150
      /* Sites/Visits Legend */
208
      /* Sites/Visits Legend */
151
      i = (strlen(msg_h_visits)*6);
209
      i = (strlen(msg_h_visits)*6);
152
      j = (strlen(msg_h_sites)*6);
210
      j = (strlen(msg_h_sites)*6);
153
      gdImageString(im,gdFontSmall,491-i-j-12,11,msg_h_visits,dkgrey);
211
      gdImageStringRus(im,gdFontSmall,491-i-j-12,11,msg_h_visits,dkgrey);
154
      gdImageString(im,gdFontSmall,490-i-j-12,10,msg_h_visits,COLOR6);
212
      gdImageStringRus(im,gdFontSmall,490-i-j-12,10,msg_h_visits,COLOR6);
155
      gdImageString(im,gdFontSmall,491-j-9,11,"/",dkgrey);
213
      gdImageStringRus(im,gdFontSmall,491-j-9,11,"/",dkgrey);
156
      gdImageString(im,gdFontSmall,490-j-9,10,"/",black);
214
      gdImageStringRus(im,gdFontSmall,490-j-9,10,"/",black);
157
      gdImageString(im,gdFontSmall,491-j,11,msg_h_sites,dkgrey);
215
      gdImageStringRus(im,gdFontSmall,491-j,11,msg_h_sites,dkgrey);
158
      gdImageString(im,gdFontSmall,490-j,10,msg_h_sites,COLOR3);
216
      gdImageStringRus(im,gdFontSmall,490-j,10,msg_h_sites,COLOR3);
159
217
160
      /* Hits/Files/Pages Legend */
218
      /* Hits/Files/Pages Legend */
161
      i = (strlen(msg_h_pages)*6);
219
      i = (strlen(msg_h_pages)*6);
162
      j = (strlen(msg_h_files)*6);
220
      j = (strlen(msg_h_files)*6);
163
      gdImageStringUp(im,gdFontSmall,8,231,msg_h_pages,dkgrey);
221
      gdImageStringUpRus(im,gdFontSmall,8,231,msg_h_pages,dkgrey);
164
      gdImageStringUp(im,gdFontSmall,7,230,msg_h_pages,COLOR5);
222
      gdImageStringUpRus(im,gdFontSmall,7,230,msg_h_pages,COLOR5);
165
      gdImageStringUp(im,gdFontSmall,8,231-i-3,"/",dkgrey);
223
      gdImageStringUpRus(im,gdFontSmall,8,231-i-3,"/",dkgrey);
166
      gdImageStringUp(im,gdFontSmall,7,230-i-3,"/",black);
224
      gdImageStringUpRus(im,gdFontSmall,7,230-i-3,"/",black);
167
      gdImageStringUp(im,gdFontSmall,8,231-i-12,msg_h_files,dkgrey);
225
      gdImageStringUpRus(im,gdFontSmall,8,231-i-12,msg_h_files,dkgrey);
168
      gdImageStringUp(im,gdFontSmall,7,230-i-12,msg_h_files,COLOR2);
226
      gdImageStringUpRus(im,gdFontSmall,7,230-i-12,msg_h_files,COLOR2);
169
      gdImageStringUp(im,gdFontSmall,8,231-i-j-15,"/",dkgrey);
227
      gdImageStringUpRus(im,gdFontSmall,8,231-i-j-15,"/",dkgrey);
170
      gdImageStringUp(im,gdFontSmall,7,230-i-j-15,"/",black);
228
      gdImageStringUpRus(im,gdFontSmall,7,230-i-j-15,"/",black);
171
      gdImageStringUp(im,gdFontSmall,8,231-i-j-24,msg_h_hits,dkgrey);
229
      gdImageStringUpRus(im,gdFontSmall,8,231-i-j-24,msg_h_hits,dkgrey);
172
      gdImageStringUp(im,gdFontSmall,7,230-i-j-24,msg_h_hits,COLOR1);
230
      gdImageStringUpRus(im,gdFontSmall,7,230-i-j-24,msg_h_hits,COLOR1);
173
   }
231
   }
174
232
175
   /* data1 */
233
   /* data1 */
Lines 222-228 Link Here
222
   }
280
   }
223
   if (maxval <= 0) maxval = 1;
281
   if (maxval <= 0) maxval = 1;
224
   sprintf(maxvaltxt, "%lu", maxval);
282
   sprintf(maxvaltxt, "%lu", maxval);
225
   gdImageStringUp(im, gdFontSmall,493,26+(strlen(maxvaltxt)*6),
283
   gdImageStringUpRus(im, gdFontSmall,493,26+(strlen(maxvaltxt)*6),
226
                   maxvaltxt, black);
284
                   maxvaltxt, black);
227
285
228
   /* data6 */
286
   /* data6 */
Lines 258-264 Link Here
258
       if (data4[i] > fmaxval) fmaxval = data4[i];         /* get max val    */
316
       if (data4[i] > fmaxval) fmaxval = data4[i];         /* get max val    */
259
   if (fmaxval <= 0.0) fmaxval = 1.0;
317
   if (fmaxval <= 0.0) fmaxval = 1.0;
260
   sprintf(maxvaltxt, "%.0f", fmaxval);
318
   sprintf(maxvaltxt, "%.0f", fmaxval);
261
   gdImageStringUp(im, gdFontSmall,493,130+(strlen(maxvaltxt)*6),
319
   gdImageStringUpRus(im, gdFontSmall,493,130+(strlen(maxvaltxt)*6),
262
                   maxvaltxt,black);
320
                   maxvaltxt,black);
263
321
264
   /* data4 */
322
   /* data4 */
Lines 340-348 Link Here
340
   for (i=0;i<31;i++)
398
   for (i=0;i<31;i++)
341
   {
399
   {
342
      if ((julday % 7 == 6) || (julday % 7 == 0))
400
      if ((julday % 7 == 6) || (julday % 7 == 0))
343
       gdImageString(im,gdFontSmall,25+(i*15),382,numchar[i+1],COLOR1);
401
       gdImageStringRus(im,gdFontSmall,25+(i*15),382,numchar[i+1],COLOR1);
344
      else
402
      else
345
       gdImageString(im,gdFontSmall,25+(i*15),382,numchar[i+1],black);
403
       gdImageStringRus(im,gdFontSmall,25+(i*15),382,numchar[i+1],black);
346
      julday++;
404
      julday++;
347
   }
405
   }
348
406
Lines 355-392 Link Here
355
   }
413
   }
356
   if (maxval <= 0) maxval = 1;
414
   if (maxval <= 0) maxval = 1;
357
   sprintf(maxvaltxt, "%lu", maxval);
415
   sprintf(maxvaltxt, "%lu", maxval);
358
   gdImageStringUp(im, gdFontSmall,8,26+(strlen(maxvaltxt)*6),
416
   gdImageStringUpRus(im, gdFontSmall,8,26+(strlen(maxvaltxt)*6),
359
                   maxvaltxt,black);
417
                   maxvaltxt,black);
360
418
361
   if (graph_legend)                           /* Print color coded legends? */
419
   if (graph_legend)                           /* Print color coded legends? */
362
   {
420
   {
363
      /* Kbytes Legend */
421
      /* Kbytes Legend */
364
      gdImageStringUp(im,gdFontSmall,494,376,msg_h_xfer,dkgrey);
422
      gdImageStringUpRus(im,gdFontSmall,494,376,msg_h_xfer,dkgrey);
365
      gdImageStringUp(im,gdFontSmall,493,375,msg_h_xfer,COLOR4);
423
      gdImageStringUpRus(im,gdFontSmall,493,375,msg_h_xfer,COLOR4);
366
424
367
      /* Sites/Visits Legend */
425
      /* Sites/Visits Legend */
368
      i = (strlen(msg_h_sites)*6);
426
      i = (strlen(msg_h_sites)*6);
369
      gdImageStringUp(im,gdFontSmall,494,276,msg_h_sites,dkgrey);
427
      gdImageStringUpRus(im,gdFontSmall,494,276,msg_h_sites,dkgrey);
370
      gdImageStringUp(im,gdFontSmall,493,275,msg_h_sites,COLOR3);
428
      gdImageStringUpRus(im,gdFontSmall,493,275,msg_h_sites,COLOR3);
371
      gdImageStringUp(im,gdFontSmall,494,276-i-3,"/",dkgrey);
429
      gdImageStringUpRus(im,gdFontSmall,494,276-i-3,"/",dkgrey);
372
      gdImageStringUp(im,gdFontSmall,493,275-i-3,"/",black);
430
      gdImageStringUpRus(im,gdFontSmall,493,275-i-3,"/",black);
373
      gdImageStringUp(im,gdFontSmall,494,276-i-12,msg_h_visits,dkgrey);
431
      gdImageStringUpRus(im,gdFontSmall,494,276-i-12,msg_h_visits,dkgrey);
374
      gdImageStringUp(im,gdFontSmall,493,275-i-12,msg_h_visits,COLOR6);
432
      gdImageStringUpRus(im,gdFontSmall,493,275-i-12,msg_h_visits,COLOR6);
375
433
376
      /* Pages/Files/Hits Legend */
434
      /* Pages/Files/Hits Legend */
377
      s = ( i=(strlen(msg_h_pages)*6) )+
435
      s = ( i=(strlen(msg_h_pages)*6) )+
378
          ( j=(strlen(msg_h_files)*6) )+
436
          ( j=(strlen(msg_h_files)*6) )+
379
          ( strlen(msg_h_hits)*6 )+ 52;
437
          ( strlen(msg_h_hits)*6 )+ 52;
380
      gdImageStringUp(im,gdFontSmall,494,s,msg_h_pages,dkgrey);
438
      gdImageStringUpRus(im,gdFontSmall,494,s,msg_h_pages,dkgrey);
381
      gdImageStringUp(im,gdFontSmall,493,s-1,msg_h_pages,COLOR5);
439
      gdImageStringUpRus(im,gdFontSmall,493,s-1,msg_h_pages,COLOR5);
382
      gdImageStringUp(im,gdFontSmall,494,s-i-3,"/",dkgrey);
440
      gdImageStringUpRus(im,gdFontSmall,494,s-i-3,"/",dkgrey);
383
      gdImageStringUp(im,gdFontSmall,493,s-i-4,"/",black);
441
      gdImageStringUpRus(im,gdFontSmall,493,s-i-4,"/",black);
384
      gdImageStringUp(im,gdFontSmall,494,s-i-12,msg_h_files,dkgrey);
442
      gdImageStringUpRus(im,gdFontSmall,494,s-i-12,msg_h_files,dkgrey);
385
      gdImageStringUp(im,gdFontSmall,493,s-i-13,msg_h_files,COLOR2);
443
      gdImageStringUpRus(im,gdFontSmall,493,s-i-13,msg_h_files,COLOR2);
386
      gdImageStringUp(im,gdFontSmall,494,s-i-j-15,"/",dkgrey);
444
      gdImageStringUpRus(im,gdFontSmall,494,s-i-j-15,"/",dkgrey);
387
      gdImageStringUp(im,gdFontSmall,493,s-i-j-16,"/",black);
445
      gdImageStringUpRus(im,gdFontSmall,493,s-i-j-16,"/",black);
388
      gdImageStringUp(im,gdFontSmall,494,s-i-j-24,msg_h_hits,dkgrey);
446
      gdImageStringUpRus(im,gdFontSmall,494,s-i-j-24,msg_h_hits,dkgrey);
389
      gdImageStringUp(im,gdFontSmall,493,s-i-j-25,msg_h_hits,COLOR1);
447
      gdImageStringUpRus(im,gdFontSmall,493,s-i-j-25,msg_h_hits,COLOR1);
390
   }
448
   }
391
449
392
   /* data1 */
450
   /* data1 */
Lines 435-441 Link Here
435
   }
493
   }
436
   if (maxval <= 0) maxval = 1;
494
   if (maxval <= 0) maxval = 1;
437
   sprintf(maxvaltxt, "%lu", maxval);
495
   sprintf(maxvaltxt, "%lu", maxval);
438
   gdImageStringUp(im, gdFontSmall,8,180+(strlen(maxvaltxt)*6),
496
   gdImageStringUpRus(im, gdFontSmall,8,180+(strlen(maxvaltxt)*6),
439
                   maxvaltxt, black);
497
                   maxvaltxt, black);
440
   
498
   
441
   /* data 6 */
499
   /* data 6 */
Lines 468-474 Link Here
468
      if (data4[i]>fmaxval) fmaxval = data4[i];
526
      if (data4[i]>fmaxval) fmaxval = data4[i];
469
   if (fmaxval <= 0.0) fmaxval = 1.0;
527
   if (fmaxval <= 0.0) fmaxval = 1.0;
470
   sprintf(maxvaltxt, "%.0f", fmaxval/1024);
528
   sprintf(maxvaltxt, "%.0f", fmaxval/1024);
471
   gdImageStringUp(im, gdFontSmall,8,280+(strlen(maxvaltxt)*6),
529
   gdImageStringUpRus(im, gdFontSmall,8,280+(strlen(maxvaltxt)*6),
472
                   maxvaltxt, black);
530
                   maxvaltxt, black);
473
   
531
   
474
   for (i=0; i<31; i++)
532
   for (i=0; i<31; i++)
Lines 525-538 Link Here
525
   /* x-axis legend */
583
   /* x-axis legend */
526
   for (i=0;i<24;i++)
584
   for (i=0;i<24;i++)
527
   {
585
   {
528
      gdImageString(im,gdFontSmall,33+(i*19),238,numchar[i],black);
586
      gdImageStringRus(im,gdFontSmall,33+(i*19),238,numchar[i],black);
529
      if (data1[i] > maxval) maxval = data1[i];           /* get max val    */
587
      if (data1[i] > maxval) maxval = data1[i];           /* get max val    */
530
      if (data2[i] > maxval) maxval = data2[i];
588
      if (data2[i] > maxval) maxval = data2[i];
531
      if (data3[i] > maxval) maxval = data3[i];
589
      if (data3[i] > maxval) maxval = data3[i];
532
   }
590
   }
533
   if (maxval <= 0) maxval = 1;
591
   if (maxval <= 0) maxval = 1;
534
   sprintf(maxvaltxt, "%lu", maxval);
592
   sprintf(maxvaltxt, "%lu", maxval);
535
   gdImageStringUp(im, gdFontSmall, 8, 26+(strlen(maxvaltxt)*6),
593
   gdImageStringUpRus(im, gdFontSmall, 8, 26+(strlen(maxvaltxt)*6),
536
                   maxvaltxt, black);
594
                   maxvaltxt, black);
537
   
595
   
538
   if (graph_legend)                          /* print color coded legends? */
596
   if (graph_legend)                          /* print color coded legends? */
Lines 541-556 Link Here
541
      s = ( i=(strlen(msg_h_pages)*6) )+
599
      s = ( i=(strlen(msg_h_pages)*6) )+
542
          ( j=(strlen(msg_h_files)*6) )+
600
          ( j=(strlen(msg_h_files)*6) )+
543
          ( strlen(msg_h_hits)*6 )+ 52;
601
          ( strlen(msg_h_hits)*6 )+ 52;
544
      gdImageStringUp(im,gdFontSmall,494,s,msg_h_pages,dkgrey);
602
      gdImageStringUpRus(im,gdFontSmall,494,s,msg_h_pages,dkgrey);
545
      gdImageStringUp(im,gdFontSmall,493,s-1,msg_h_pages,COLOR5);
603
      gdImageStringUpRus(im,gdFontSmall,493,s-1,msg_h_pages,COLOR5);
546
      gdImageStringUp(im,gdFontSmall,494,s-i-3,"/",dkgrey);
604
      gdImageStringUpRus(im,gdFontSmall,494,s-i-3,"/",dkgrey);
547
      gdImageStringUp(im,gdFontSmall,493,s-i-4,"/",black);
605
      gdImageStringUpRus(im,gdFontSmall,493,s-i-4,"/",black);
548
      gdImageStringUp(im,gdFontSmall,494,s-i-12,msg_h_files,dkgrey);
606
      gdImageStringUpRus(im,gdFontSmall,494,s-i-12,msg_h_files,dkgrey);
549
      gdImageStringUp(im,gdFontSmall,493,s-i-13,msg_h_files,COLOR2);
607
      gdImageStringUpRus(im,gdFontSmall,493,s-i-13,msg_h_files,COLOR2);
550
      gdImageStringUp(im,gdFontSmall,494,s-i-j-15,"/",dkgrey);
608
      gdImageStringUpRus(im,gdFontSmall,494,s-i-j-15,"/",dkgrey);
551
      gdImageStringUp(im,gdFontSmall,493,s-i-j-16,"/",black);
609
      gdImageStringUpRus(im,gdFontSmall,493,s-i-j-16,"/",black);
552
      gdImageStringUp(im,gdFontSmall,494,s-i-j-24,msg_h_hits,dkgrey);
610
      gdImageStringUpRus(im,gdFontSmall,494,s-i-j-24,msg_h_hits,dkgrey);
553
      gdImageStringUp(im,gdFontSmall,493,s-i-j-25,msg_h_hits,COLOR1);
611
      gdImageStringUpRus(im,gdFontSmall,493,s-i-j-25,msg_h_hits,COLOR1);
554
   }
612
   }
555
613
556
   /* data1 */
614
   /* data1 */
Lines 656-663 Link Here
656
714
657
         sprintf(buffer,"%s (%d%%)",legend[i], percent);
715
         sprintf(buffer,"%s (%d%%)",legend[i], percent);
658
         x=480-(strlen(buffer)*7);
716
         x=480-(strlen(buffer)*7);
659
         gdImageString(im,gdFontMediumBold, x+1, y+1, buffer, black);
717
         gdImageStringRus(im,gdFontMediumBold, x+1, y+1, buffer, black);
660
         gdImageString(im,gdFontMediumBold, x, y, buffer, i+4);
718
         gdImageStringRus(im,gdFontMediumBold, x, y, buffer, i+4);
661
         y+=20;
719
         y+=20;
662
      }
720
      }
663
   }
721
   }
Lines 669-676 Link Here
669
      gdImageFill(im, gdata.mx, gdata.my, white);
727
      gdImageFill(im, gdata.mx, gdata.my, white);
670
      sprintf(buffer,"%s (%d%%)",msg_h_other,100-(int)(s_arc*100));
728
      sprintf(buffer,"%s (%d%%)",msg_h_other,100-(int)(s_arc*100));
671
      x=480-(strlen(buffer)*7);
729
      x=480-(strlen(buffer)*7);
672
      gdImageString(im,gdFontMediumBold, x+1, y+1, buffer, black);
730
      gdImageStringRus(im,gdFontMediumBold, x+1, y+1, buffer, black);
673
      gdImageString(im,gdFontMediumBold, x, y, buffer, white);
731
      gdImageStringRus(im,gdFontMediumBold, x, y, buffer, white);
674
   }
732
   }
675
733
676
   /* save png image */
734
   /* save png image */
Lines 746-752 Link Here
746
   gdImageRectangle(im, 0, 0, xsize-1, ysize-1, black);
804
   gdImageRectangle(im, 0, 0, xsize-1, ysize-1, black);
747
805
748
   /* display the graph title */
806
   /* display the graph title */
749
   gdImageString(im, gdFontMediumBold, 20, 8, title, blue);
807
   gdImageStringRus(im, gdFontMediumBold, 20, 8, title, blue);
750
808
751
   return;
809
   return;
752
}
810
}
(-)/usr/src/webalizer-2.01-10/lang/webalizer_lang.russian (-9 / +9 lines)
Lines 201-212 Link Here
201
char *msg_h_day   = "äÅÎØ";
201
char *msg_h_day   = "äÅÎØ";
202
char *msg_h_mth   = "íÅÓÑÃ";
202
char *msg_h_mth   = "íÅÓÑÃ";
203
char *msg_h_hour  = "þÁÓ";
203
char *msg_h_hour  = "þÁÓ";
204
char *msg_h_hits  = "ÚÁÐÒÏÓÏ×";
204
char *msg_h_hits  = "ÚÁÐÒÏÓÏ× ";
205
char *msg_h_pages = "ÓÔÒÁÎÉÃ";
205
char *msg_h_pages = "ÓÔÒÁÎÉÃ ";
206
char *msg_h_visits= "ÐÏÓÅÝÅÎÉÊ";
206
char *msg_h_visits= "ÐÏÓÅÝÅÎÉÊ";
207
char *msg_h_files = "ÆÁÊÌÏ×";
207
char *msg_h_files = "ÆÁÊÌÏ× ";
208
char *msg_h_sites = "ÓÁÊÔÏ×";
208
char *msg_h_sites = "ÓÁÊÔÏ× ";
209
char *msg_h_xfer  = "ëÂÁÊÔ";
209
char *msg_h_xfer  = "ëÂÁÊÔ ";
210
char *msg_h_hname = "éÍÑ ÈÏÓÔÁ";
210
char *msg_h_hname = "éÍÑ ÈÏÓÔÁ";
211
char *msg_h_url   = "URL";
211
char *msg_h_url   = "URL";
212
char *msg_h_agent = "âÒÏÕÚÅÒ";
212
char *msg_h_agent = "âÒÏÕÚÅÒ";
Lines 276-285 Link Here
276
char *msg_v_users = "ðÏÓÍÏÔÒÅÔØ ×ÓÅ ÉÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ";
276
char *msg_v_users = "ðÏÓÍÏÔÒÅÔØ ×ÓÅ ÉÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ";
277
277
278
/* short month names MUST BE 3 CHARS in size... pad if needed*/
278
/* short month names MUST BE 3 CHARS in size... pad if needed*/
279
char *s_month[12]={ "ñÎ×", "æÅ×", "íÁÒ",
279
char *s_month[12]={ "ñÎ× ", "æÅ× ", "íÁÒ ",
280
                    "áÐÒ", "íÁÊ", "éÀÎ",
280
                    "áÐÒ ", "íÁÊ ", "éÀÎ ",
281
                    "éÀÌ", "á×Ç", "óÅÎ",
281
                    "éÀÌ ", "á×Ç ", "óÅÎ ",
282
                    "ïËÔ", "îÏÑ", "äÅË"};
282
                    "ïËÔ ", "îÏÑ ", "äÅË "};
283
283
284
/* long month names - can be any length */
284
/* long month names - can be any length */
285
char *l_month[12]={ "ñÎ×ÁÒØ",   "æÅ×ÒÁÌØ", "íÁÒÔ",   "áÐÒÅÌØ",
285
char *l_month[12]={ "ñÎ×ÁÒØ",   "æÅ×ÒÁÌØ", "íÁÒÔ",   "áÐÒÅÌØ",
(-)/usr/src/webalizer-2.01-10/Makefile (-1 / +1 lines)
Lines 25-31 Link Here
25
ETCDIR = /etc
25
ETCDIR = /etc
26
CC     = gcc
26
CC     = gcc
27
CFLAGS = -I/usr/lib -Wall -O2
27
CFLAGS = -I/usr/lib -Wall -O2
28
LIBS   = -lgd -lpng -lz -lm -lnsl 
28
LIBS   = -lgd -lpng -lz -lm -lnsl -liconv
29
DEFS   = -DETCDIR=\"/etc\"  -DHAVE_SOCKET=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1  
29
DEFS   = -DETCDIR=\"/etc\"  -DHAVE_SOCKET=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1  
30
LDFLAGS= -L/usr/lib 
30
LDFLAGS= -L/usr/lib 
31
INSTALL= /usr/bin/install -c
31
INSTALL= /usr/bin/install -c
(-)/usr/src/webalizer-2.01-10/webalizer.c (-1 / +9 lines)
Lines 166-171 Link Here
166
int     dump_search  = 0;                     /* Search strings           */
166
int     dump_search  = 0;                     /* Search strings           */
167
int     dump_header  = 0;                     /* Dump header as first rec */
167
int     dump_header  = 0;                     /* Dump header as first rec */
168
char    *dump_path   = NULL;                  /* Path for dump files      */
168
char    *dump_path   = NULL;                  /* Path for dump files      */
169
char    *FontName    = NULL;		      /* Font name for garphs     */
170
int     FontSize     = 0;
169
171
170
int     cur_year=0, cur_month=0,              /* year/month/day/hour      */
172
int     cur_year=0, cur_month=0,              /* year/month/day/hour      */
171
        cur_day=0, cur_hour=0,                /* tracking variables       */
173
        cur_day=0, cur_hour=0,                /* tracking variables       */
Lines 1449-1455 Link Here
1449
                     "DNSCache",          /* DNS Cache file name        84  */
1451
                     "DNSCache",          /* DNS Cache file name        84  */
1450
                     "DNSChildren",       /* DNS Children (0=no DNS)    85  */
1452
                     "DNSChildren",       /* DNS Children (0=no DNS)    85  */
1451
                     "DailyGraph",        /* Daily Graph (0=no)         86  */
1453
                     "DailyGraph",        /* Daily Graph (0=no)         86  */
1452
                     "DailyStats"         /* Daily Stats (0=no)         87  */
1454
                     "DailyStats",        /* Daily Stats (0=no)         87  */
1455
		     "FontName",	  /* Font name for graphs       88  */
1456
		     "FontSize"           /* Font size for graphs       89  */
1453
                   };
1457
                   };
1454
1458
1455
   FILE *fp;
1459
   FILE *fp;
Lines 1593-1600 Link Here
1593
#endif  /* USE_DNS */
1597
#endif  /* USE_DNS */
1594
        case 86: daily_graph=(value[0]=='n')?0:1; break;  /* HourlyGraph    */
1598
        case 86: daily_graph=(value[0]=='n')?0:1; break;  /* HourlyGraph    */
1595
        case 87: daily_stats=(value[0]=='n')?0:1; break;  /* HourlyStats    */
1599
        case 87: daily_stats=(value[0]=='n')?0:1; break;  /* HourlyStats    */
1600
	case 88: FontName=save_opt(value);	  break;  /* FontName */
1601
	case 89: FontSize=atoi(value);            break;  /* FontSize */
1596
      }
1602
      }
1597
   }
1603
   }
1604
   if(FontName == NULL) { FontName = "/usr/share/fonts/arial.ttf"; }
1605
   if(FontSize == 0) { FontSize = 10; }
1598
   fclose(fp);
1606
   fclose(fp);
1599
}
1607
}
1600
1608
(-)/usr/src/webalizer-2.01-10/webalizer.h (+2 lines)
Lines 259-263 Link Here
259
extern void   init_counters();
259
extern void   init_counters();
260
extern int    ispage(char *);
260
extern int    ispage(char *);
261
extern u_long jdate(int,int,int);
261
extern u_long jdate(int,int,int);
262
extern char *FontName;
263
extern int FontSize;
262
264
263
#endif  /* _WEBALIZER_H */
265
#endif  /* _WEBALIZER_H */
(-)/usr/src/webalizer-2.01-10/webalizer_lang.h (-9 / +9 lines)
Lines 201-212 Link Here
201
char *msg_h_day   = "äÅÎØ";
201
char *msg_h_day   = "äÅÎØ";
202
char *msg_h_mth   = "íÅÓÑÃ";
202
char *msg_h_mth   = "íÅÓÑÃ";
203
char *msg_h_hour  = "þÁÓ";
203
char *msg_h_hour  = "þÁÓ";
204
char *msg_h_hits  = "ÚÁÐÒÏÓÏ×";
204
char *msg_h_hits  = "ÚÁÐÒÏÓÏ× ";
205
char *msg_h_pages = "ÓÔÒÁÎÉÃ";
205
char *msg_h_pages = "ÓÔÒÁÎÉÃ ";
206
char *msg_h_visits= "ÐÏÓÅÝÅÎÉÊ";
206
char *msg_h_visits= "ÐÏÓÅÝÅÎÉÊ";
207
char *msg_h_files = "ÆÁÊÌÏ×";
207
char *msg_h_files = "ÆÁÊÌÏ× ";
208
char *msg_h_sites = "ÓÁÊÔÏ×";
208
char *msg_h_sites = "ÓÁÊÔÏ× ";
209
char *msg_h_xfer  = "ëÂÁÊÔ";
209
char *msg_h_xfer  = "ëÂÁÊÔ ";
210
char *msg_h_hname = "éÍÑ ÈÏÓÔÁ";
210
char *msg_h_hname = "éÍÑ ÈÏÓÔÁ";
211
char *msg_h_url   = "URL";
211
char *msg_h_url   = "URL";
212
char *msg_h_agent = "âÒÏÕÚÅÒ";
212
char *msg_h_agent = "âÒÏÕÚÅÒ";
Lines 276-285 Link Here
276
char *msg_v_users = "ðÏÓÍÏÔÒÅÔØ ×ÓÅ ÉÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ";
276
char *msg_v_users = "ðÏÓÍÏÔÒÅÔØ ×ÓÅ ÉÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ";
277
277
278
/* short month names MUST BE 3 CHARS in size... pad if needed*/
278
/* short month names MUST BE 3 CHARS in size... pad if needed*/
279
char *s_month[12]={ "ñÎ×", "æÅ×", "íÁÒ",
279
char *s_month[12]={ "ñÎ× ", "æÅ× ", "íÁÒ ",
280
                    "áÐÒ", "íÁÊ", "éÀÎ",
280
                    "áÐÒ ", "íÁÊ ", "éÀÎ ",
281
                    "éÀÌ", "á×Ç", "óÅÎ",
281
                    "éÀÌ ", "á×Ç ", "óÅÎ ",
282
                    "ïËÔ", "îÏÑ", "äÅË"};
282
                    "ïËÔ ", "îÏÑ ", "äÅË "};
283
283
284
/* long month names - can be any length */
284
/* long month names - can be any length */
285
char *l_month[12]={ "ñÎ×ÁÒØ",   "æÅ×ÒÁÌØ", "íÁÒÔ",   "áÐÒÅÌØ",
285
char *l_month[12]={ "ñÎ×ÁÒØ",   "æÅ×ÒÁÌØ", "íÁÒÔ",   "áÐÒÅÌØ",

Return to bug 9460