1 /*
2 Copyright (C) 2012-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: dk3font.ctr
12 */
13 
14 /**	@file dk3font.c The dk3font module.
15 */
16 
17 
18 #include <libdk3c/dk3all.h>
19 #include <libdk3fig/dk3font.h>
20 
21 
22 
23 
24 
25 
26 
27 /*
28 	PLACES TO SEARCH FOR PFB FILES:
29 	===============================
30 
31 	Linux
32 	-----
33 	/usr/share/ghostscript/_version_/Resource/Font/_newname_
34 	/usr/share/fonts/default/Type1/_oldname_.pfb
35 
36 	Windows
37 	-------
38 	_windowsdirectory_/Fonts
39 	Ghostscript font directories
40 */
41 
42 
43 
44 /**	Additional system font families usable as replacements.
45 */
46 static char const * const	dk3font_times_family_names[] = {
47 /* 0 */
48 "Times New Roman",
49 
50 /* 1 */
51 "Bodoni MT",
52 
53 NULL
54 
55 };
56 
57 
58 
59 /**	Additional system font families usable as replacements.
60 */
61 static char const * const	dk3font_avantgarde_family_names[] = {
62 /* 0 */
63 "Trebuchet MS",
64 
65 /* 1 */
66 "Verdana",
67 
68 NULL
69 
70 };
71 
72 
73 
74 /**	Additional system font families usable as replacements.
75 */
76 static char const * const	dk3font_bookman_light_family_names[] = {
77 /* 0 */
78 "Bookman Old Style",
79 
80 /* 1 */
81 "Times New Roman",
82 
83 NULL
84 
85 };
86 
87 
88 
89 /**	Additional system font families usable as replacements.
90 */
91 static char const * const	dk3font_courier_family_names[] = {
92 /* 0 */
93 "Courier New",
94 
95 NULL
96 
97 };
98 
99 
100 
101 /**	Additional system font families usable as replacements.
102 */
103 static char const * const	dk3font_helvetica_family_names[] = {
104 /* 0 */
105 "Arial",
106 
107 /* 1 */
108 "Gill Sans MT",
109 
110 /* 2 */
111 "Lucida Sans",
112 
113 /* 3 */
114 "Tahoma",
115 
116 NULL
117 
118 };
119 
120 
121 
122 /**	Additional system font families usable as replacements.
123 */
124 static char const * const	dk3font_helvetica_narrow_family_names[] = {
125 /* 0 */
126 "Arial Narrow",
127 
128 /* 1 */
129 "Arial",
130 
131 NULL
132 
133 };
134 
135 
136 
137 /**	Additional system font families usable as replacements.
138 */
139 static char const * const	dk3font_ncschoolbook_family_names[] = {
140 /* 0 */
141 "Century Schoolbook",
142 
143 /* 1 */
144 "Times New Roman",
145 
146 NULL
147 
148 };
149 
150 
151 
152 /**	Additional system font families usable as replacements.
153 */
154 static char const * const	dk3font_palatino_family_names[] = {
155 /* 0 */
156 "Palatino Linotype",
157 
158 /* 1 */
159 "Times New Roman",
160 
161 NULL
162 
163 };
164 
165 
166 
167 /**	Additional system font families usable as replacements.
168 */
169 static char const * const	dk3font_symbol_family_names[] = {
170 /* 0 */
171 "Symbol",
172 
173 NULL
174 
175 };
176 
177 
178 
179 /**	Additional system font families usable as replacements.
180 */
181 static char const * const	dk3font_zapfchancery_family_names[] = {
182 /* 0 */
183 "Edwardian Script ITC",
184 
185 /* 1 */
186 "Blackadder ITC",
187 
188 NULL
189 
190 };
191 
192 
193 
194 /**	Additional system font families usable as replacements.
195 */
196 static char const * const	dk3font_zapfdingbats_family_names[] = {
197 /* 0 */
198 "WingDings",
199 
200 NULL
201 
202 };
203 
204 
205 
206 /**	Font information.
207 */
208 static dk3_font_t const dk3font_data[] = {
209   { /*  0 */
210     "Times-Roman",
211     "ptmr",
212     "ptm",
213     "NimbusRomNo9L-Regu",
214     "n021003l",
215     "NimbusRomNo9L-Regu",
216     "Times",
217     "Nimbus Roman No9 L",
218     "NimbusRomanNo9L-Regu",
219     dk3font_times_family_names,
220     DK3_FONT_ROMAN,
221     DK3_FONT_ROMAN,
222     400
223   },
224   { /*  1 */
225     "Times-Italic",
226     "ptmri",
227     "ptm",
228     "NimbusRomNo9L-ReguItal",
229     "n021023l",
230     "NimbusRomNo9L-ReguItal",
231     "Times",
232     "Nimbus Roman No9 L",
233     "NimbusRomNo9L-ReguItal",
234     dk3font_times_family_names,
235     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
236     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
237     400
238   },
239   { /*  2 */
240     "Times-Bold",
241     "ptmb",
242     "ptm",
243     "NimbusRomNo9L-Medi",
244     "n021004l",
245     "NimbusRomNo9L-Medi",
246     "Times",
247     "Nimbus Roman No9 L",
248     "NimbusRomNo9L-Medi",
249     dk3font_times_family_names,
250     (DK3_FONT_ROMAN | DK3_FONT_BOLD),
251     DK3_FONT_ROMAN,
252     500
253   },
254   { /*  3 */
255     "Times-BoldItalic",
256     "ptmbi",
257     "ptm",
258     "NimbusRomNo9L-MediItal",
259     "n021024l",
260     "NimbusRomNo9L-MediItal",
261     "Times",
262     "Nimbus Roman No9 L",
263     "NimbusRomNo9L-MediItal",
264     dk3font_times_family_names,
265     (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
266     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
267     500
268   },
269   { /*  4 */
270     "AvantGarde-Book",
271     "pagk",
272     "pag",
273     "URWGothicL-Book",
274     "a010013l",
275     "URWGothicL-Book",
276     "AvantGarde",
277     "URW Gothic L",
278     "URWGothicL-Book",
279     dk3font_avantgarde_family_names,
280     DK3_FONT_SANS_SERIF,
281     DK3_FONT_SANS_SERIF,
282     400
283   },
284   { /*  5 */
285     "AvantGarde-BookOblique",
286     "pagko",
287     "pag",
288     "URWGothicL-BookObli",
289     "a010033l",
290     "URWGothicL-BookObli",
291     "AvantGarde",
292     "URW Gothic L",
293     "URWGothicL-BookObli",
294     dk3font_avantgarde_family_names,
295     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
296     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
297     400
298   },
299   { /*  6 */
300     "AvantGarde-Demi",
301     "pagd",
302     "pag",
303     "URWGothicL-Demi",
304     "a010015l",
305     "URWGothicL-Demi",
306     "AvantGarde",
307     "URW Gothic L",
308     "URWGothicL-Demi",
309     dk3font_avantgarde_family_names,
310     (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
311     DK3_FONT_SANS_SERIF,
312     600
313   },
314   { /*  7 */
315     "AvantGarde-DemiOblique",
316     "pagdo",
317     "pag",
318     "URWGothicL-DemiObli",
319     "a010035l",
320     "URWGothicL-DemiObli",
321     "AvantGarde",
322     "URW Gothic L",
323     "URWGothicL-DemiObli",
324     dk3font_avantgarde_family_names,
325     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC | DK3_FONT_BOLD),
326     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
327     600
328   },
329   { /*  8 */
330     "Bookman-Light",
331     "pbkl",
332     "pbk",
333     "URWBookmanL-Ligh",
334     "b018012l",
335     "URWBookmanL-Ligh",
336     "Bookman",
337     "URW Bookman L",
338     "URWBookmanL-Ligh",
339     dk3font_bookman_light_family_names,
340     DK3_FONT_ROMAN,
341     DK3_FONT_ROMAN,
342     400
343   },
344   { /*  9 */
345     "Bookman-LightItalic",
346     "pbkli",
347     "pbk",
348     "URWBookmanL-LighItal",
349     "b018032l",
350     "URWBookmanL-LighItal",
351     "Bookman",
352     "URW Bookman L",
353     "URWBookmanL-LighItal",
354     dk3font_bookman_light_family_names,
355     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
356     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
357     400
358   },
359   { /* 10 */
360     "Bookman-Demi",
361     "pbkd",
362     "pbk",
363     "URWBookmanL-DemiBold",	/* 2.2.22: URWBookmanL-Demi */
364     "b018015l",
365     "URWBookmanL-DemiBold",
366     "Bookman",
367     "URW Bookman L",
368     "URWBookmanL-DemiBold",
369     dk3font_bookman_light_family_names,
370     (DK3_FONT_ROMAN | DK3_FONT_BOLD),
371     DK3_FONT_ROMAN,
372     600
373   },
374   { /* 11 */
375     "Bookman-DemiItalic",
376     "pbkdi",
377     "pbk",
378     "URWBookmanL-DemiBoldItal",	/* 2.2.22: URWBookmanL-DemiItal */
379     "b018035l",
380     "URWBookmanL-DemiBoldItal",
381     "Bookman",
382     "URW Bookman L",
383     "URWBookmanL-DemiBoldItal",
384     dk3font_bookman_light_family_names,
385     (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
386     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
387     600
388   },
389   { /* 12 */
390     "Courier",
391     "pcrr",
392     "pcr",
393     "NimbusMonL-Regu",
394     "n022003l",
395     "NimbusMonL-Regu",
396     "Courier",
397     "Nimbus Mono L",
398     "NimbusMonL-Regu",
399     dk3font_courier_family_names,
400     DK3_FONT_TYPEWRITER,
401     DK3_FONT_TYPEWRITER,
402     400
403   },
404   { /* 13 */
405     "Courier-Oblique",
406     "pcrro",
407     "pcr",
408     "NimbusMonL-ReguObli",
409     "n022023l",
410     "NimbusMonL-ReguObli",
411     "Courier",
412     "Nimbus Mono L",
413     "NimbusMonL-ReguObli",
414     dk3font_courier_family_names,
415     (DK3_FONT_TYPEWRITER | DK3_FONT_ITALIC),
416     (DK3_FONT_TYPEWRITER | DK3_FONT_OBLIQUE),
417     400
418   },
419   { /* 14 */
420     "Courier-Bold",
421     "pcrb",
422     "pcr",
423     "NimbusMonL-Bold",
424     "n022004l",
425     "NimbusMonL-Bold",
426     "Courier",
427     "Nimbus Mono L",
428     "NimbusMonL-Bold",
429     dk3font_courier_family_names,
430     (DK3_FONT_TYPEWRITER | DK3_FONT_BOLD),
431     DK3_FONT_TYPEWRITER,
432     700
433   },
434   { /* 15 */
435     "Courier-BoldOblique",
436     "pcrbo",
437     "pcr",
438     "NimbusMonL-BoldObli",
439     "n022024l",
440     "NimbusMonL-BoldObli",
441     "Courier",
442     "Nimbus Mono L",
443     "NimbusMonL-BoldObli",
444     dk3font_courier_family_names,
445     (DK3_FONT_TYPEWRITER | DK3_FONT_ITALIC | DK3_FONT_BOLD),
446     (DK3_FONT_TYPEWRITER | DK3_FONT_OBLIQUE),
447     700
448   },
449   { /* 16 */
450     "Helvetica",
451     "phvr",
452     "phv",
453     "NimbusSanL-Regu",
454     "n019003l",
455     "NimbusSanL-Regu",
456     "Helvetica",
457     "Nimbus Sans L",
458     "NimbusSansL-Regu",
459     dk3font_helvetica_family_names,
460     DK3_FONT_SANS_SERIF,
461     DK3_FONT_SANS_SERIF,
462     400
463   },
464   { /* 17 */
465     "Helvetica-Oblique",
466     "phvro",
467     "phv",
468     "NimbusSanL-ReguItal",
469     "n019023l",
470     "NimbusSanL-ReguItal",
471     "Helvetica",
472     "Nimbus Sans L",
473     "NimbusSanL-ReguItal",
474     dk3font_helvetica_family_names,
475     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
476     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
477     400
478   },
479   { /* 18 */
480     "Helvetica-Bold",
481     "phvb",
482     "phv",
483     "NimbusSanL-Bold",
484     "n019004l",
485     "NimbusSanL-Bold",
486     "Helvetica",
487     "Nimbus Sans L",
488     "NimbusSanL-Bold",
489     dk3font_helvetica_family_names,
490     (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
491     DK3_FONT_SANS_SERIF,
492     700
493   },
494   { /* 19 */
495     "Helvetica-BoldOblique",
496     "phvbo",
497     "phv",
498     "NimbusSanL-BoldItal",
499     "n019024l",
500     "NimbusSanL-BoldItal",
501     "Helvetica",
502     "Nimbus Sans L",
503     "NimbusSanL-BoldItal",
504     dk3font_helvetica_family_names,
505     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
506     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
507     700
508   },
509   { /* 20 */
510     "Helvetica-Narrow",
511     "phvrrn",
512     "phv",
513     "NimbusSanL-ReguCond",
514     "n019043l",
515     "NimbusSanL-ReguCond",
516     "Helvetica Narrow",
517     "Nimbus Sans L",
518     "NimbusSanL-ReguCond",
519     dk3font_helvetica_narrow_family_names,
520     DK3_FONT_SANS_SERIF,
521     DK3_FONT_SANS_SERIF,
522     400
523   },
524   { /* 21 */
525     "Helvetica-Narrow-Oblique",
526     "phvron",
527     "phv",
528     "NimbusSanL-ReguCondItal",
529     "n019063l",
530     "NimbusSanL-ReguCondItal",
531     "Helvetica Narrow",
532     "Nimbus Sans L",
533     "NimbusSanL-ReguCondItal",
534     dk3font_helvetica_narrow_family_names,
535     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
536     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
537     400
538   },
539   { /* 22 */
540     "Helvetica-Narrow-Bold",
541     "phvbrn",
542     "phv",
543     "NimbusSanL-BoldCond",
544     "n019044l",
545     "NimbusSanL-BoldCond",
546     "Helvetica Narrow",
547     "Nimbus Sans L",
548     "NimbusSanL-BoldCond",
549     dk3font_helvetica_narrow_family_names,
550     (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
551     DK3_FONT_SANS_SERIF,
552     700
553   },
554   { /* 23 */
555     "Helvetica-Narrow-BoldOblique",
556     "phvbon",
557     "phv",
558     "NimbusSanL-BoldCondItal",
559     "n019064l",
560     "NimbusSanL-BoldCondItal",
561     "Helvetica Narrow",
562     "Nimbus Sans L",
563     "NimbusSanL-BoldCondItal",
564     dk3font_helvetica_narrow_family_names,
565     (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
566     (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
567     700
568   },
569   { /* 24 */
570     "NewCenturySchlbk-Roman",
571     "pncr",
572     "pnc",
573     "CenturySchL-Roma",
574     "c059013l",
575     "CenturySchL-Roma",
576     "New Century Schoolbook",
577     "Century Schoolbook L",
578     "CenturySchL-Roma",
579     dk3font_ncschoolbook_family_names,
580     DK3_FONT_ROMAN,
581     DK3_FONT_ROMAN,
582     400
583   },
584   { /* 25 */
585     "NewCenturySchlbk-Italic",
586     "pncri",
587     "pnc",
588     "CenturySchL-RomaItal",
589     "c059033l",
590     "CenturySchL-Ital",
591     "New Century Schoolbook",
592     "Century Schoolbook L",
593     "CenturySchL-Ital",
594     dk3font_ncschoolbook_family_names,
595     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
596     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
597     400
598   },
599   { /* 26 */
600     "NewCenturySchlbk-Bold",
601     "pncb",
602     "pnc",
603     "CenturySchL-Bold",
604     "c059016l",
605     "CenturySchL-Bold",
606     "New Century Schoolbook",
607     "Century Schoolbook L",
608     "CenturySchL-Bold",
609     dk3font_ncschoolbook_family_names,
610     (DK3_FONT_ROMAN | DK3_FONT_BOLD),
611     DK3_FONT_ROMAN,
612     700
613   },
614   { /* 27 */
615     "NewCenturySchlbk-BoldItalic",
616     "pncbi",
617     "pnc",
618     "CenturySchL-BoldItal",
619     "c059036l",
620     "CenturySchL-BoldItal",
621     "New Century Schoolbook",
622     "Century Schoolbook L",
623     "CenturySchL-BoldItal",
624     dk3font_ncschoolbook_family_names,
625     (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
626     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
627     700
628   },
629   { /* 28 */
630     "Palatino-Roman",
631     "pplr",
632     "ppl",
633     "URWPalladioL-Roma",
634     "p052003l",
635     "URWPalladioL-Roma",
636     "Palatino",
637     "URW Palladio L",
638     "URWPalladioL-Roma",
639     dk3font_palatino_family_names,
640     DK3_FONT_ROMAN,
641     DK3_FONT_ROMAN,
642     400
643   },
644   { /* 29 */
645     "Palatino-Italic",
646     "pplri",
647     "ppl",
648     "URWPalladioL-Ital",
649     "p052023l",
650     "URWPalladioL-Ital",
651     "Palatino",
652     "URW Palladio L",
653     "URWPalladioL-Ital",
654     dk3font_palatino_family_names,
655     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
656     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
657     400
658   },
659   { /* 30 */
660     "Palatino-Bold",
661     "pplb",
662     "ppl",
663     "URWPalladioL-Bold",
664     "p052004l",
665     "URWPalladioL-Bold",
666     "Palatino",
667     "URW Palladio L",
668     "URWPalladioL-Bold",
669     dk3font_palatino_family_names,
670     (DK3_FONT_ROMAN | DK3_FONT_BOLD),
671     DK3_FONT_ROMAN,
672     700
673   },
674   { /* 31 */
675     "Palatino-BoldItalic",
676     "pplbi",
677     "ppl",
678     "URWPalladioL-BoldItal",
679     "p052024l",
680     "URWPalladioL-BoldItal",
681     "Palatino",
682     "URW Palladio L",
683     "URWPalladioL-BoldItal",
684     dk3font_palatino_family_names,
685     (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
686     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
687     700
688   },
689   { /* 32 */
690     "Symbol",
691     "psyr",
692     "psy",
693     "StandardSymL",
694     "s050000l",
695     "StandardSymL",
696     "Symbol",
697     "Standard Symbols L",
698     "StandardSymL",
699     dk3font_symbol_family_names,
700     0,
701     0,
702     400
703   },
704   { /* 33 */
705     "ZapfChancery-MediumItalic",
706     "pzcmi",
707     "pzc",
708     "URWChanceryL-MediItal",
709     "z003034l",
710     "URWChanceryL-MediItal",
711     "Zapf Chancery",
712     "URW Chancery L",
713     "URWChanceryL-MediItal",
714     dk3font_zapfchancery_family_names,
715     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
716     (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
717     500
718   },
719   { /* 34 */
720     "ZapfDingbats",
721     "pzdr",
722     "pzd",
723     "Dingbats",
724     "d050000l",
725     "Dingbats",
726     "DingBats",
727     "Dingbats",
728     "Dingbats",
729     dk3font_zapfdingbats_family_names,
730     0,
731     0,
732     400
733   }
734 };
735 
736 
737 
738 /**	Preference names to search for GhostScript font files.
739 */
740 static dkChar const * const	dk3font_base_pref_names[] = {
741 dkT("/fonts/ghostscript/web"),
742 dkT("/fonts/ghostscript/local"),
743 NULL
744 };
745 
746 
747 
748 char const *
dk3font_get_ps_font_name(int fontno)749 dk3font_get_ps_font_name(int fontno)
750 {
751   char const		*back = NULL;
752   if((fontno >= 0) && (fontno < 35)) {
753     back = dk3font_data[fontno].psFontName;
754   }
755   return back;
756 }
757 
758 
759 
760 char const *
dk3font_get_gs_font_name(int fontno)761 dk3font_get_gs_font_name(int fontno)
762 {
763   char const		*back = NULL;
764   if((fontno >= 0) && (fontno < 35)) {
765     back = dk3font_data[fontno].gsFontName;
766   }
767   return back;
768 }
769 
770 
771 
772 char const *
dk3font_get_tex_font_name(int fontno)773 dk3font_get_tex_font_name(int fontno)
774 {
775   char const		*back = NULL;
776   if((fontno >= 0) && (fontno < 35)) {
777     back = dk3font_data[fontno].texFontName;
778   }
779   return back;
780 }
781 
782 
783 
784 char const *
dk3font_get_tex_family_name(int fontno)785 dk3font_get_tex_family_name(int fontno)
786 {
787   char const		*back = NULL;
788   if((fontno >= 0) && (fontno < 35)) {
789     back = dk3font_data[fontno].texFamilyName;
790   }
791   return back;
792 }
793 
794 
795 
796 char const *
dk3font_get_gs_old_file(int fontno)797 dk3font_get_gs_old_file(int fontno)
798 {
799   char const		*back = NULL;
800   if((fontno >= 0) && (fontno < 35)) {
801     back = dk3font_data[fontno].gsFileOld;
802   }
803   return back;
804 }
805 
806 
807 
808 char const *
dk3font_get_gs_new_file(int fontno)809 dk3font_get_gs_new_file(int fontno)
810 {
811   char const		*back = NULL;
812   if((fontno >= 0) && (fontno < 35)) {
813     back = dk3font_data[fontno].gsFileNew;
814   }
815   return back;
816 }
817 
818 
819 
820 int
dk3font_get_features(int fontno)821 dk3font_get_features(int fontno)
822 {
823   int			 back = 0;
824   if((fontno >= 0) && (fontno < 35)) {
825     back = dk3font_data[fontno].features;
826   }
827   return back;
828 }
829 
830 
831 int
dk3font_get_svg_features(int fontno)832 dk3font_get_svg_features(int fontno)
833 {
834   int			 back = 0;
835   if((fontno >= 0) && (fontno < 35)) {
836     back = dk3font_data[fontno].svgFeatures;
837   }
838   return back;
839 }
840 
841 
842 
843 char const *
dk3font_get_ps_family(int fontno)844 dk3font_get_ps_family(int fontno)
845 {
846   char const		*back = NULL;
847   if((fontno >= 0) && (fontno < 35)) {
848     back = dk3font_data[fontno].psFamilyName;
849   }
850   return back;
851 }
852 
853 
854 
855 char const *
dk3font_get_svg_family(int fontno)856 dk3font_get_svg_family(int fontno)
857 {
858   char const		*back = NULL;
859 
860   if((fontno >= 0) && (fontno < 35)) {
861     back = dk3font_data[fontno].svgFamilyName;
862   }
863   return back;
864 }
865 
866 
867 
868 char const *
dk3font_get_svg_fontid(int fontno)869 dk3font_get_svg_fontid(int fontno)
870 {
871   char const		*back = NULL;
872 
873   if((fontno >= 0) && (fontno < 35)) {
874     back = dk3font_data[fontno].svgFontId;
875   }
876   return back;
877 }
878 
879 
880 
881 int
dk3font_get_svg_font_weight(int fontno)882 dk3font_get_svg_font_weight(int fontno)
883 {
884   int		back = 0;
885   if((fontno >= 0) && (fontno < 35)) {
886     back = dk3font_data[fontno].svgFontWeight;
887   }
888   return back;
889 }
890 
891 
892 
893 int
dk3font_gs_base_web(dk3_app_t * app,dkChar * buf,size_t bs)894 dk3font_gs_base_web(dk3_app_t *app, dkChar *buf, size_t bs)
895 {
896   int back;
897   back = dk3app_get_dir_from_pref(app, dk3font_base_pref_names[0], buf, bs, 0);
898   return back;
899 }
900 
901 
902 
903 int
dk3font_gs_base_local(dk3_app_t * app,dkChar * buf,size_t bs)904 dk3font_gs_base_local(dk3_app_t *app, dkChar *buf, size_t bs)
905 {
906   int back;
907   back = dk3app_get_dir_from_pref(app, dk3font_base_pref_names[1], buf, bs, 1);
908   return back;
909 }
910 
911 
912 
913 char const * const *
dk3font_get_replacement_families(int fontno)914 dk3font_get_replacement_families(int fontno)
915 {
916   char const * const	*back = NULL;
917   if((0 <= fontno) && (fontno < 35)) {
918     back = dk3font_data[fontno].replacements;
919   }
920   return back;
921 }
922 
923 
924