w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ttf.c
Go to the documentation of this file.
1 /*
2  * True Type Font to Adobe Type 1 font converter
3  * By Mark Heath <mheath@netspace.net.au>
4  * Based on ttf2pfa by Andrew Weeks <ccsaw@bath.ac.uk>
5  * With help from Frank M. Siegert <fms@this.net>
6  *
7  * see COPYRIGHT
8  *
9  */
10 #include <kpathsea/config.h>
11 #include <kpathsea/kpathsea.h>
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <string.h>
15 #include <sys/types.h>
16 #include <sys/stat.h>
17 #include <fcntl.h>
18 #include <time.h>
19 #include <ctype.h>
20 #include <math.h>
21 
22 #ifndef WINDOWS
23 # include <unistd.h>
24 # include <netinet/in.h>
25 #else
26 # include "winport.h"
27 #endif
28 
29 #include "ttf.h"
30 #include "pt1.h"
31 #include "global.h"
32 
33 /* prototypes of call entries */
34 static void openfont(char *fname, char *arg);
35 static void closefont( void);
36 static int getnglyphs ( void);
37 static int glnames( GLYPH *glyph_list);
38 static void glmetrics( GLYPH *glyph_list);
39 static int glenc( GLYPH *glyph_list, int *encoding, int *unimap);
40 static void fnmetrics( struct font_metrics *fm);
41 static void glpath( int glyphno, GLYPH *glyph_list);
42 static void kerning( GLYPH *glyph_list);
43 
44 /* globals */
45 
46 /* front-end descriptor */
47 struct frontsw ttf_sw = {
48  /*name*/ "ttf",
49  /*descr*/ "built-in TTF support",
50  /*suffix*/ { "ttf" },
51  /*open*/ openfont,
52  /*close*/ closefont,
53  /*nglyphs*/ getnglyphs,
54  /*glnames*/ glnames,
55  /*glmetrics*/ glmetrics,
56  /*glenc*/ glenc,
57  /*fnmetrics*/ fnmetrics,
58  /*glpath*/ glpath,
59  /*kerning*/ kerning,
60 };
61 
62 /* statics */
63 
64 static FILE *ttf_file;
66 
69 static char *filebuffer;
70 static char *filebuffer_end;
79 static BYTE *glyf_start = NULL;
82 static union {
86 #define short_loca_table loca_table.sp
87 #define long_loca_table loca_table.lp
88 
89 static short cmap_n_segs;
93 static int enc_type;
94 
95 static char *name_fields[8];
96 
98 
99 static char *mac_glyph_names[258] = {
100  ".notdef", ".null", "CR",
101  "space", "exclam", "quotedbl", "numbersign",
102  "dollar", "percent", "ampersand", "quotesingle",
103  "parenleft", "parenright", "asterisk", "plus",
104  "comma", "hyphen", "period", "slash",
105  "zero", "one", "two", "three",
106  "four", "five", "six", "seven",
107  "eight", "nine", "colon", "semicolon",
108  "less", "equal", "greater", "question",
109  "at", "A", "B", "C",
110  "D", "E", "F", "G",
111  "H", "I", "J", "K",
112  "L", "M", "N", "O",
113  "P", "Q", "R", "S",
114  "T", "U", "V", "W",
115  "X", "Y", "Z", "bracketleft",
116  "backslash", "bracketright", "asciicircum", "underscore",
117  "grave", "a", "b", "c",
118  "d", "e", "f", "g",
119  "h", "i", "j", "k",
120  "l", "m", "n", "o",
121  "p", "q", "r", "s",
122  "t", "u", "v", "w",
123  "x", "y", "z", "braceleft",
124  "bar", "braceright", "asciitilde", "Adieresis",
125  "Aring", "Ccedilla", "Eacute", "Ntilde",
126  "Odieresis", "Udieresis", "aacute", "agrave",
127  "acircumflex", "adieresis", "atilde", "aring",
128  "ccedilla", "eacute", "egrave", "ecircumflex",
129  "edieresis", "iacute", "igrave", "icircumflex",
130  "idieresis", "ntilde", "oacute", "ograve",
131  "ocircumflex", "odieresis", "otilde", "uacute",
132  "ugrave", "ucircumflex", "udieresis", "dagger",
133  "degree", "cent", "sterling", "section",
134  "bullet", "paragraph", "germandbls", "registered",
135  "copyright", "trademark", "acute", "dieresis",
136  "notequal", "AE", "Oslash", "infinity",
137  "plusminus", "lessequal", "greaterequal", "yen",
138  "mu", "partialdiff", "summation", "product",
139  "pi", "integral", "ordfeminine", "ordmasculine",
140  "Omega", "ae", "oslash", "questiondown",
141  "exclamdown", "logicalnot", "radical", "florin",
142  "approxequal", "increment", "guillemotleft", "guillemotright",
143  "ellipsis", "nbspace", "Agrave", "Atilde",
144  "Otilde", "OE", "oe", "endash",
145  "emdash", "quotedblleft", "quotedblright", "quoteleft",
146  "quoteright", "divide", "lozenge", "ydieresis",
147  "Ydieresis", "fraction", "currency", "guilsinglleft",
148  "guilsinglright", "fi", "fl", "daggerdbl",
149  "periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
150  "Acircumflex", "Ecircumflex", "Aacute", "Edieresis",
151  "Egrave", "Iacute", "Icircumflex", "Idieresis",
152  "Igrave", "Oacute", "Ocircumflex", "applelogo",
153  "Ograve", "Uacute", "Ucircumflex", "Ugrave",
154  "dotlessi", "circumflex", "tilde", "macron",
155  "breve", "dotaccent", "ring", "cedilla",
156  "hungarumlaut", "ogonek", "caron", "Lslash",
157  "lslash", "Scaron", "scaron", "Zcaron",
158  "zcaron", "brokenbar", "Eth", "eth",
159  "Yacute", "yacute", "Thorn", "thorn",
160  "minus", "multiply", "onesuperior", "twosuperior",
161  "threesuperior", "onehalf", "onequarter", "threequarters",
162  "franc", "Gbreve", "gbreve", "Idot",
163  "Scedilla", "scedilla", "Cacute", "cacute",
164  "Ccaron", "ccaron", "dmacron"
165 };
166 
167 /* other prototypes */
168 static void draw_composite_glyf( GLYPH *g, GLYPH *glyph_list, int glyphno,
169  double *matrix, int level);
170 static void draw_simple_glyf( GLYPH *g, GLYPH *glyph_list, int glyphno,
171  double *matrix);
172 static double f2dot14( short x);
173 
174 /* get the TTF description table address and length for this index */
175 
176 static void
178  int glyphno,
179  TTF_GLYF **tab,
180  int *len
181 )
182 {
183  if(tab!=NULL) {
184  if (long_offsets) {
185  *tab = (TTF_GLYF *) (glyf_start + ntohl(long_loca_table[glyphno]));
186  } else {
187  *tab = (TTF_GLYF *) (glyf_start + (ntohs(short_loca_table[glyphno]) << 1));
188  }
189  }
190  if(len!=NULL) {
191  if (long_offsets) {
192  *len = ntohl(long_loca_table[glyphno + 1]) - ntohl(long_loca_table[glyphno]);
193  } else {
194  *len = (ntohs(short_loca_table[glyphno + 1]) - ntohs(short_loca_table[glyphno])) << 1;
195  }
196  }
197 }
198 
199 static void
201 {
202  int j, k, lang, len, platform;
203  char *p, *string_area;
204  int found3 = 0;
205 
206  string_area = (char *) name_table + ntohs(name_table->offset);
208 
209  for (j = 0; j < 8; j++) {
210  name_fields[j] = "";
211  }
212 
213  for (j = 0; j < ntohs(name_table->numberOfNameRecords); j++) {
214 
215  platform = ntohs(name_record->platformID);
216 
217  if (platform == 3) {
218 
219  found3 = 1;
220  lang = ntohs(name_record->languageID) & 0xff;
221  len = ntohs(name_record->stringLength);
222  if (lang == 0 || lang == 9) {
223  k = ntohs(name_record->nameID);
224  if (k < 8) {
225  p = string_area + ntohs(name_record->stringOffset);
227  }
228  }
229  }
230  name_record++;
231  }
232 
233  string_area = (char *) name_table + ntohs(name_table->offset);
235 
236  if (!found3) {
237  for (j = 0; j < ntohs(name_table->numberOfNameRecords); j++) {
238 
239  platform = ntohs(name_record->platformID);
240 
241  if (platform == 1) {
242 
243  found3 = 1;
244  lang = ntohs(name_record->languageID) & 0xff;
245  len = ntohs(name_record->stringLength);
246  if (lang == 0 || lang == 9) {
247  k = ntohs(name_record->nameID);
248  if (k < 8) {
249  p = string_area + ntohs(name_record->stringOffset);
251  }
252  }
253  }
254  name_record++;
255  }
256  }
257  if (!found3) {
258  fprintf(stderr, "**** Cannot decode font name fields ****\n");
259  exit(1);
260  }
261  if (name_fields[4][0] == 0) { /* Full Name empty, use Family Name */
262  name_fields[4] = name_fields[1];
263  }
264  if (name_fields[6][0] == 0) { /* Font Name empty, use Full Name */
265  name_fields[6] = name_fields[4];
266  if (name_fields[6][0] == 0) { /* oops, empty again */
267  WARNING_1 fprintf(stderr, "Font name is unknown, setting to \"Unknown\"\n");
268  name_fields[6] = "Unknown";
269  }
270  }
271  p = name_fields[6];
272  /* must not start with a digit */
273  if(isdigit(*p))
274  *p+= 'A'-'0'; /* change to a letter */
275  while (*p != '\0') {
276  if (!isalnum(*p) || *p=='_') {
277  *p = '-';
278  }
279  p++;
280  }
281 }
282 
283 static void
285 {
287  if (long_offsets != 0 && long_offsets != 1) {
288  fprintf(stderr, "**** indexToLocFormat wrong ****\n");
289  exit(1);
290  }
291 }
292 
293 /* limit the recursion level to avoid cycles */
294 #define MAX_COMPOSITE_LEVEL 20
295 
296 static void
298  GLYPH *g,
299  GLYPH *glyph_list,
300  int glyphno,
301  double *orgmatrix,
302  int level
303 )
304 {
305  int len;
306  short ncontours;
307  USHORT flagbyte, glyphindex;
308  double arg1, arg2;
309  BYTE *ptr;
310  char *bptr;
311  SHORT *sptr;
312  double matrix[6], newmatrix[6];
313 
314  get_glyf_table(glyphno, &glyf_table, &len);
315 
316  if(len<=0) /* nothing to do */
317  return;
318 
319  ncontours = ntohs(glyf_table->numberOfContours);
320  if (ncontours >= 0) { /* simple case */
321  draw_simple_glyf(g, glyph_list, glyphno, orgmatrix);
322  return;
323  }
324 
325  if(ISDBG(COMPOSITE) && level ==0)
326  fprintf(stderr, "* %s [ %.2f %.2f %.2f %.2f %.2f %.2f ]\n", g->name,
327  orgmatrix[0], orgmatrix[1], orgmatrix[2], orgmatrix[3],
328  orgmatrix[4], orgmatrix[5]);
329 
330  /* complex case */
331  if(level >= MAX_COMPOSITE_LEVEL) {
332  WARNING_1 fprintf(stderr,
333  "*** Glyph %s: stopped (possibly infinite) recursion at depth %d\n",
334  g->name, level);
335  return;
336  }
337 
338  ptr = ((BYTE *) glyf_table + sizeof(TTF_GLYF));
339  sptr = (SHORT *) ptr;
340  do {
341  flagbyte = ntohs(*sptr);
342  sptr++;
343  glyphindex = ntohs(*sptr);
344  sptr++;
345 
347  arg1 = (short)ntohs(*sptr);
348  sptr++;
349  arg2 = (short)ntohs(*sptr);
350  sptr++;
351  } else {
352  bptr = (char *) sptr;
353  arg1 = (signed char) bptr[0];
354  arg2 = (signed char) bptr[1];
355  sptr++;
356  }
357  matrix[1] = matrix[2] = 0.0;
358 
359  if (flagbyte & WE_HAVE_A_SCALE) {
360  matrix[0] = matrix[3] = f2dot14(*sptr);
361  sptr++;
362  } else if (flagbyte & WE_HAVE_AN_X_AND_Y_SCALE) {
363  matrix[0] = f2dot14(*sptr);
364  sptr++;
365  matrix[3] = f2dot14(*sptr);
366  sptr++;
367  } else if (flagbyte & WE_HAVE_A_TWO_BY_TWO) {
368  matrix[0] = f2dot14(*sptr);
369  sptr++;
370  matrix[2] = f2dot14(*sptr);
371  sptr++;
372  matrix[1] = f2dot14(*sptr);
373  sptr++;
374  matrix[3] = f2dot14(*sptr);
375  sptr++;
376  } else {
377  matrix[0] = matrix[3] = 1.0;
378  }
379 
380  /*
381  * See *
382  * http://fonts.apple.com/TTRefMan/RM06/Chap6g
383  * lyf.html * matrix[0,1,2,3,4,5]=a,b,c,d,m,n
384  */
385 
386  if (fabs(matrix[0]) > fabs(matrix[1]))
387  matrix[4] = fabs(matrix[0]);
388  else
389  matrix[4] = fabs(matrix[1]);
390  if (fabs(fabs(matrix[0]) - fabs(matrix[2])) <= 33. / 65536.)
391  matrix[4] *= 2.0;
392 
393  if (fabs(matrix[2]) > fabs(matrix[3]))
394  matrix[5] = fabs(matrix[2]);
395  else
396  matrix[5] = fabs(matrix[3]);
397  if (fabs(fabs(matrix[2]) - fabs(matrix[3])) <= 33. / 65536.)
398  matrix[5] *= 2.0;
399 
400  /*
401  * fprintf (stderr,"Matrix Opp %hd
402  * %hd\n",arg1,arg2);
403  */
404 #if 0
405  fprintf(stderr, "Matrix: %f %f %f %f %f %f\n",
406  matrix[0], matrix[1], matrix[2], matrix[3],
407  matrix[4], matrix[5]);
408  fprintf(stderr, "Offset: %f %f (%s)\n",
409  arg1, arg2,
410  ((flagbyte & ARGS_ARE_XY_VALUES) ? "XY" : "index"));
411 #endif
412 
414  matrix[4] *= arg1;
415  matrix[5] *= arg2;
416  } else {
417  WARNING_1 fprintf(stderr,
418  "*** Glyph %s: reusing scale from another glyph is unsupported\n",
419  g->name);
420  /*
421  * must extract values from a glyph
422  * but it seems to be too much pain
423  * and it's not clear now that it
424  * would be really used in any
425  * interesting font
426  */
427  }
428 
429  /* at this point arg1,arg2 contain what logically should be matrix[4,5] */
430 
431  /* combine matrices */
432 
433  newmatrix[0] = orgmatrix[0]*matrix[0] + orgmatrix[2]*matrix[1];
434  newmatrix[1] = orgmatrix[0]*matrix[2] + orgmatrix[2]*matrix[3];
435 
436  newmatrix[2] = orgmatrix[1]*matrix[0] + orgmatrix[3]*matrix[1];
437  newmatrix[3] = orgmatrix[1]*matrix[2] + orgmatrix[3]*matrix[3];
438 
439  newmatrix[4] = orgmatrix[0]*matrix[4] + orgmatrix[2]*matrix[5] + orgmatrix[4];
440  newmatrix[5] = orgmatrix[1]*matrix[4] + orgmatrix[3]*matrix[5] + orgmatrix[5];
441 
442  if(ISDBG(COMPOSITE)) {
443  fprintf(stderr, "%*c+-> %2d %s [ %.2f %.2f %.2f %.2f %.2f %.2f ]\n",
444  level+1, ' ', level, glyph_list[glyphindex].name,
445  matrix[0], matrix[1], matrix[2], matrix[3],
446  matrix[4], matrix[5]);
447  fprintf(stderr, "%*c = [ %.2f %.2f %.2f %.2f %.2f %.2f ]\n",
448  level+1, ' ',
449  newmatrix[0], newmatrix[1], newmatrix[2], newmatrix[3],
450  newmatrix[4], newmatrix[5]);
451  }
452  draw_composite_glyf(g, glyph_list, glyphindex, newmatrix, level+1);
453 
454  } while (flagbyte & MORE_COMPONENTS);
455 }
456 
457 static void
459  GLYPH *g,
460  GLYPH *glyph_list,
461  int glyphno,
462  double *matrix
463 )
464 {
465  int i, j, k, k1, len, first, cs, ce;
466  /* We assume that hsbw always sets to(0, 0) */
467  double xlast = 0, ylast = 0;
468  int finished, nguide, contour_start, contour_end;
469  short ncontours, n_inst, last_point;
470  USHORT *contour_end_pt;
471  BYTE *ptr;
472 #define GLYFSZ 2000
473  short xabs[GLYFSZ], yabs[GLYFSZ], xrel[GLYFSZ], yrel[GLYFSZ];
474  double xcoord[GLYFSZ], ycoord[GLYFSZ];
475  BYTE flags[GLYFSZ];
476  double tx, ty;
477  int needreverse = 0; /* transformation may require
478  * that */
479  GENTRY *lge;
480 
481  lge = g->lastentry;
482 
483  get_glyf_table(glyphno, &glyf_table, &len);
484 
485  if (len <= 0) {
486  WARNING_1 fprintf(stderr,
487  "**** Composite glyph %s refers to non-existent glyph %s, ignored\n",
488  g->name,
489  glyph_list[glyphno].name);
490  return;
491  }
492  ncontours = ntohs(glyf_table->numberOfContours);
493  if (ncontours < 0) {
494  WARNING_1 fprintf(stderr,
495  "**** Composite glyph %s refers to composite glyph %s, ignored\n",
496  g->name,
497  glyph_list[glyphno].name);
498  return;
499  }
500  contour_end_pt = (USHORT *) ((char *) glyf_table + sizeof(TTF_GLYF));
501 
502  last_point = ntohs(contour_end_pt[ncontours - 1]);
503  n_inst = ntohs(contour_end_pt[ncontours]);
504 
505  ptr = ((BYTE *) contour_end_pt) + (ncontours << 1) + n_inst + 2;
506  j = k = 0;
507  while (k <= last_point) {
508  flags[k] = ptr[j];
509 
510  if (ptr[j] & REPEAT) {
511  for (k1 = 0; k1 < ptr[j + 1]; k1++) {
512  k++;
513  flags[k] = ptr[j];
514  }
515  j++;
516  }
517  j++;
518  k++;
519  }
520 
521  for (k = 0; k <= last_point; k++) {
522  if (flags[k] & XSHORT) {
523  if (flags[k] & XSAME) {
524  xrel[k] = ptr[j];
525  } else {
526  xrel[k] = -ptr[j];
527  }
528  j++;
529  } else if (flags[k] & XSAME) {
530  xrel[k] = 0.0;
531  } else {
532  xrel[k] = (short)( ptr[j] * 256 + ptr[j + 1] );
533  j += 2;
534  }
535  if (k == 0) {
536  xabs[k] = xrel[k];
537  } else {
538  xabs[k] = xrel[k] + xabs[k - 1];
539  }
540 
541  }
542 
543  for (k = 0; k <= last_point; k++) {
544  if (flags[k] & YSHORT) {
545  if (flags[k] & YSAME) {
546  yrel[k] = ptr[j];
547  } else {
548  yrel[k] = -ptr[j];
549  }
550  j++;
551  } else if (flags[k] & YSAME) {
552  yrel[k] = 0;
553  } else {
554  yrel[k] = ptr[j] * 256 + ptr[j + 1];
555  j += 2;
556  }
557  if (k == 0) {
558  yabs[k] = yrel[k];
559  } else {
560  yabs[k] = yrel[k] + yabs[k - 1];
561  }
562  }
563 
564  if (matrix) {
565  for (i = 0; i <= last_point; i++) {
566  tx = xabs[i];
567  ty = yabs[i];
568  xcoord[i] = fscale(matrix[0] * tx + matrix[2] * ty + matrix[4]);
569  ycoord[i] = fscale(matrix[1] * tx + matrix[3] * ty + matrix[5]);
570  }
571  } else {
572  for (i = 0; i <= last_point; i++) {
573  xcoord[i] = fscale(xabs[i]);
574  ycoord[i] = fscale(yabs[i]);
575  }
576  }
577 
578  i = j = 0;
579  first = 1;
580 
581  while (i <= ntohs(contour_end_pt[ncontours - 1])) {
582  contour_end = ntohs(contour_end_pt[j]);
583 
584  if (first) {
585  fg_rmoveto(g, xcoord[i], ycoord[i]);
586  xlast = xcoord[i];
587  ylast = ycoord[i];
588  contour_start = i;
589  first = 0;
590  } else if (flags[i] & ONOROFF) {
591  fg_rlineto(g, xcoord[i], ycoord[i]);
592  xlast = xcoord[i];
593  ylast = ycoord[i];
594  } else {
595  cs = i - 1;
596  finished = nguide = 0;
597  while (!finished) {
598  if (i == contour_end + 1) {
599  ce = contour_start;
600  finished = 1;
601  } else if (flags[i] & ONOROFF) {
602  ce = i;
603  finished = 1;
604  } else {
605  i++;
606  nguide++;
607  }
608  }
609 
610  switch (nguide) {
611  case 0:
612  fg_rlineto(g, xcoord[ce], ycoord[ce]);
613  xlast = xcoord[ce];
614  ylast = ycoord[ce];
615  break;
616 
617  case 1:
618  fg_rrcurveto(g,
619  (xcoord[cs] + 2.0 * xcoord[cs + 1]) / 3.0,
620  (ycoord[cs] + 2.0 * ycoord[cs + 1]) / 3.0,
621  (2.0 * xcoord[cs + 1] + xcoord[ce]) / 3.0,
622  (2.0 * ycoord[cs + 1] + ycoord[ce]) / 3.0,
623  xcoord[ce],
624  ycoord[ce]
625  );
626  xlast = xcoord[ce];
627  ylast = ycoord[ce];
628 
629  break;
630 
631  case 2:
632  fg_rrcurveto(g,
633  (-xcoord[cs] + 4.0 * xcoord[cs + 1]) / 3.0,
634  (-ycoord[cs] + 4.0 * ycoord[cs + 1]) / 3.0,
635  (4.0 * xcoord[cs + 2] - xcoord[ce]) / 3.0,
636  (4.0 * ycoord[cs + 2] - ycoord[ce]) / 3.0,
637  xcoord[ce],
638  ycoord[ce]
639  );
640  xlast = xcoord[ce];
641  ylast = ycoord[ce];
642  break;
643 
644  case 3:
645  fg_rrcurveto(g,
646  (xcoord[cs] + 2.0 * xcoord[cs + 1]) / 3.0,
647  (ycoord[cs] + 2.0 * ycoord[cs + 1]) / 3.0,
648  (5.0 * xcoord[cs + 1] + xcoord[cs + 2]) / 6.0,
649  (5.0 * ycoord[cs + 1] + ycoord[cs + 2]) / 6.0,
650  (xcoord[cs + 1] + xcoord[cs + 2]) / 2.0,
651  (ycoord[cs + 1] + ycoord[cs + 2]) / 2.0
652  );
653 
654  fg_rrcurveto(g,
655  (xcoord[cs + 1] + 5.0 * xcoord[cs + 2]) / 6.0,
656  (ycoord[cs + 1] + 5.0 * ycoord[cs + 2]) / 6.0,
657  (5.0 * xcoord[cs + 2] + xcoord[cs + 3]) / 6.0,
658  (5.0 * ycoord[cs + 2] + ycoord[cs + 3]) / 6.0,
659  (xcoord[cs + 3] + xcoord[cs + 2]) / 2.0,
660  (ycoord[cs + 3] + ycoord[cs + 2]) / 2.0
661  );
662 
663  fg_rrcurveto(g,
664  (xcoord[cs + 2] + 5.0 * xcoord[cs + 3]) / 6.0,
665  (ycoord[cs + 2] + 5.0 * ycoord[cs + 3]) / 6.0,
666  (2.0 * xcoord[cs + 3] + xcoord[ce]) / 3.0,
667  (2.0 * ycoord[cs + 3] + ycoord[ce]) / 3.0,
668  xcoord[ce],
669  ycoord[ce]
670  );
671  ylast = ycoord[ce];
672  xlast = xcoord[ce];
673 
674  break;
675 
676  default:
677  k1 = cs + nguide;
678  fg_rrcurveto(g,
679  (xcoord[cs] + 2.0 * xcoord[cs + 1]) / 3.0,
680  (ycoord[cs] + 2.0 * ycoord[cs + 1]) / 3.0,
681  (5.0 * xcoord[cs + 1] + xcoord[cs + 2]) / 6.0,
682  (5.0 * ycoord[cs + 1] + ycoord[cs + 2]) / 6.0,
683  (xcoord[cs + 1] + xcoord[cs + 2]) / 2.0,
684  (ycoord[cs + 1] + ycoord[cs + 2]) / 2.0
685  );
686 
687  for (k = cs + 2; k <= k1 - 1; k++) {
688  fg_rrcurveto(g,
689  (xcoord[k - 1] + 5.0 * xcoord[k]) / 6.0,
690  (ycoord[k - 1] + 5.0 * ycoord[k]) / 6.0,
691  (5.0 * xcoord[k] + xcoord[k + 1]) / 6.0,
692  (5.0 * ycoord[k] + ycoord[k + 1]) / 6.0,
693  (xcoord[k] + xcoord[k + 1]) / 2.0,
694  (ycoord[k] + ycoord[k + 1]) / 2.0
695  );
696 
697  }
698 
699  fg_rrcurveto(g,
700  (xcoord[k1 - 1] + 5.0 * xcoord[k1]) / 6.0,
701  (ycoord[k1 - 1] + 5.0 * ycoord[k1]) / 6.0,
702  (2.0 * xcoord[k1] + xcoord[ce]) / 3.0,
703  (2.0 * ycoord[k1] + ycoord[ce]) / 3.0,
704  xcoord[ce],
705  ycoord[ce]
706  );
707  xlast = xcoord[ce];
708  ylast = ycoord[ce];
709 
710  break;
711  }
712  }
713  if (i >= contour_end) {
714  g_closepath(g);
715  first = 1;
716  i = contour_end + 1;
717  j++;
718  } else {
719  i++;
720  }
721  }
722 
723  if (matrix) {
724  /* guess whether do we need to reverse the results */
725 
726  double x[3], y[3];
727  int max = 0, from, to;
728 
729  /* transform a triangle going in proper direction */
730  /*
731  * the origin of triangle is in (0,0) so we know it in
732  * advance
733  */
734 
735  x[0] = y[0] = 0;
736  x[1] = matrix[0] * 0 + matrix[2] * 300;
737  y[1] = matrix[1] * 0 + matrix[3] * 300;
738  x[2] = matrix[0] * 300 + matrix[2] * 0;
739  y[2] = matrix[1] * 300 + matrix[3] * 0;
740 
741  /* then find the topmost point */
742  for (i = 0; i < 3; i++)
743  if (y[i] > y[max])
744  max = i;
745  from = (max + 3 - 1) % 3;
746  to = (max + 1) % 3;
747 
748  needreverse = 0;
749 
750  /* special cases for horizontal lines */
751  if (y[max] == y[from]) {
752  if (x[max] < y[from])
753  needreverse = 1;
754  } else if (y[to] == y[from]) {
755  if (x[to] < x[max])
756  needreverse = 1;
757  } else { /* generic case */
758  if ((x[to] - x[max]) * (y[max] - y[from])
759  > (x[max] - x[from]) * (y[to] - y[max]))
760  needreverse = 1;
761  }
762 
763  if (needreverse) {
764  if (lge) {
765  assertpath(lge->next, __FILE__, __LINE__, g->name);
767  } else {
768  assertpath(g->entries, __FILE__, __LINE__, g->name);
769  reversepaths(g);
770  }
771  }
772  }
773 }
774 
775 static double
777  short x
778 )
779 {
780  short y = ntohs(x);
781  return (y >> 14) + ((y & 0x3fff) / 16384.0);
782 }
783 
784 
785 /* check that the pointer points within the file */
786 /* returns 0 if pointer is good, 1 if bad */
787 static int
789  void *ptr
790 )
791 {
792  return (ptr < (void *)filebuffer || ptr >= (void *)filebuffer_end);
793 }
794 
795 /*
796  * Externally accessible methods
797  */
798 
799 /*
800  * Open font and prepare to return information to the main driver.
801  * May print error and warning messages.
802  * Exit on error.
803  */
804 
805 static void
807  char *fname,
808  char *arg /* unused now */
809 )
810 {
811  char *akp;
812  char *akpp;
813  int i, j;
814  struct stat statbuf;
815  static struct {
816  void **tbpp; /* pointer to pointer to the table */
817  char name[5]; /* table name */
818  char optional; /* flag: table may be missing */
819  } tables[] = {
820  { (void **)&name_table, "name", 0 },
821  { (void **)&head_table, "head", 0 },
822  { (void **)&hhea_table, "hhea", 0 },
823  { (void **)&post_table, "post", 0 },
824  { (void **)&glyf_start, "glyf", 0 },
825  { (void **)&cmap_table, "cmap", 0 },
826  { (void **)&kern_table, "kern", 1 },
827  { (void **)&maxp_table, "maxp", 0 },
828  { (void **)&hmtx_table, "hmtx", 0 },
829  { (void **)&long_loca_table, "loca", 0 },
830  { NULL, "", 0 } /* end of table */
831  };
832 
833  for(akp = fname; *akp; akp++) {
834  if(IS_KANJI(akp)) {
835  akp++;
836  continue;
837  }
838  if(*akp == '\\') *akp = '/';
839  }
840  akp = strrchr(fname, '/');
841  if(!akp) akp = fname;
842  else akp++;
843  akpp = kpse_find_file(akp, kpse_truetype_format, 0);
844  if(!akpp) {
845  fprintf(stderr, "**** Cannot find file '%s'\n", akp);
846  exit(1);
847  }
848  if (stat(akpp, &statbuf) == -1) {
849  fprintf(stderr, "**** Cannot access %s ****\n", fname);
850  exit(1);
851  }
852  if ((filebuffer = malloc(statbuf.st_size)) == NULL) {
853  fprintf(stderr, "**** Cannot malloc space for file ****\n");
854  exit(1);
855  }
856 
857  filebuffer_end = filebuffer + statbuf.st_size;
858 
859  if ((ttf_file = fopen(akpp, "rb")) == NULL) {
860  fprintf(stderr, "**** Cannot open file '%s'\n", fname);
861  free(akpp);
862  exit(1);
863  } else {
864  free(akpp);
865  WARNING_2 fprintf(stderr, "Processing file %s\n", fname);
866  }
867 
868  if (fread(filebuffer, 1, statbuf.st_size, ttf_file) != statbuf.st_size) {
869  fprintf(stderr, "**** Could not read whole file \n");
870  exit(1);
871  }
872  fclose(ttf_file);
873 
875 
876  if (ntohl(directory->sfntVersion) != 0x00010000) {
877  fprintf(stderr,
878  "**** Unknown File Version number [%x], or not a TrueType file\n",
879  directory->sfntVersion);
880  exit(1);
881  }
882 
883  /* clear the tables */
884  for(j=0; tables[j].tbpp != NULL; j++)
885  *(tables[j].tbpp) = NULL;
886 
887  dir_entry = &(directory->list);
888 
889  for (i = 0; i < ntohs(directory->numTables); i++) {
890 
891  for(j=0; tables[j].tbpp != NULL; j++)
892  if (memcmp(dir_entry->tag, tables[j].name, 4) == 0) {
893  *(tables[j].tbpp) = (void *) (filebuffer + ntohl(dir_entry->offset));
894  break;
895  }
896 
897  if (memcmp(dir_entry->tag, "EBDT", 4) == 0 ||
898  memcmp(dir_entry->tag, "EBLC", 4) == 0 ||
899  memcmp(dir_entry->tag, "EBSC", 4) == 0) {
900  WARNING_1 fprintf(stderr, "Font contains bitmaps\n");
901  }
902  dir_entry++;
903  }
904 
905  for(j=0; tables[j].tbpp != NULL; j++)
906  if(!tables[j].optional && badpointer( *(tables[j].tbpp) )) {
907  fprintf(stderr, "**** File contains no required table '%s'\n", tables[j].name);
908  exit(1);
909  }
910 
911  handle_name();
912 
913  handle_head();
914 
916 
918 }
919 
920 /*
921  * Close font.
922  * Exit on error.
923  */
924 
925 static void
927  void
928 )
929 {
930  return; /* empty operation */
931 }
932 
933 /*
934  * Get the number of glyphs in font.
935  */
936 
937 static int
939  void
940 )
941 {
942  return ttf_nglyphs;
943 }
944 
945 /*
946  * Get the names of the glyphs.
947  * Returns 0 if the names were assigned, non-zero if the font
948  * provides no glyph names.
949  */
950 
951 static int
954 )
955 {
956  int i, len, n, npost;
957  unsigned int format;
958  USHORT *name_index;
959  char *ptr, *p;
960  char **ps_name_ptr = (char **) malloc(ttf_nglyphs * sizeof(char *));
961  int n_ps_names;
962  int ps_fmt_3 = 0;
963 
965 
966  if (format == 0x00010000) {
967  for (i = 0; i < 258 && i < ttf_nglyphs; i++) {
969  }
970  } else if (format == 0x00020000) {
971  npost = ntohs(post_table->numGlyphs);
972  if (ttf_nglyphs != npost) {
973  /* This is an error in the font, but we can now cope */
974  WARNING_1 fprintf(stderr, "**** Postscript table size mismatch %d/%d ****\n",
975  npost, ttf_nglyphs);
976  }
977  n_ps_names = 0;
978  name_index = &(post_table->glyphNameIndex);
979 
980  /* This checks the integrity of the post table */
981  for (i=0; i<npost; i++) {
982  n = ntohs(name_index[i]);
983  if (n > n_ps_names + 257) {
984  n_ps_names = n - 257;
985  }
986  }
987 
988  ptr = (char *) post_table + 34 + (ttf_nglyphs << 1);
989  i = 0;
990  while (*ptr > 0 && i < n_ps_names) {
991  len = *ptr;
992  /* previously the program wrote nulls into the table. If the table
993  was corrupt, this could put zeroes anywhere, leading to obscure bugs,
994  so now I malloc space for the names. Yes it is much less efficient */
995 
996  if ((p = malloc(len+1)) == NULL) {
997  fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
998  exit(255);
999  }
1000 
1001  ps_name_ptr[i] = p;
1002  strncpy(p, ptr+1, len);
1003  p[len] = '\0';
1004  i ++;
1005  ptr += len + 1;
1006  }
1007 
1008  if (i != n_ps_names)
1009  {
1010  WARNING_2 fprintf (stderr, "** Postscript Name mismatch %d != %d **\n",
1011  i, n_ps_names);
1012  n_ps_names = i;
1013  }
1014 
1015  /*
1016  * for (i=0; i<n_ps_names; i++) { fprintf(stderr, "i=%d,
1017  * len=%d, name=%s\n", i, ps_name_len[i], ps_name_ptr[i]); }
1018  */
1019 
1020  for (i = 0; i < npost; i++) {
1021  n = ntohs(name_index[i]);
1022  if (n < 258) {
1024  } else if (n < 258 + n_ps_names) {
1025  glyph_list[i].name = ps_name_ptr[n - 258];
1026  } else {
1027  glyph_list[i].name = malloc(16);
1028  sprintf(glyph_list[i].name, "_g_%d", i);
1029  WARNING_2 fprintf(stderr,
1030  "Glyph No. %d has no postscript name, becomes %s\n",
1031  i, glyph_list[i].name);
1032  }
1033  }
1034  /* Now fake postscript names for all those beyond the end of the table */
1035  if (npost < ttf_nglyphs) {
1036  for (i=npost; i<ttf_nglyphs; i++) {
1037  if ((glyph_list[i].name = malloc(16)) == NULL)
1038  {
1039  fprintf (stderr, "****malloc failed %s line %d\n", __FILE__, __LINE__);
1040  exit(255);
1041  }
1042  sprintf(glyph_list[i].name, "_g_%d", i);
1043  WARNING_2 fprintf(stderr,
1044  "Glyph No. %d has no postscript name, becomes %s\n",
1045  i, glyph_list[i].name);
1046  }
1047  }
1048  } else if (format == 0x00030000) {
1049  WARNING_3 fputs("No postscript table, using default\n", stderr);
1050  ps_fmt_3 = 1;
1051  } else if (format == 0x00028000) {
1052  ptr = (char *) &(post_table->numGlyphs);
1053  for (i = 0; i < ttf_nglyphs; i++) {
1055  }
1056  } else {
1057  fprintf(stderr,
1058  "**** Postscript table in wrong format %x ****\n",
1059  format);
1060  exit(1);
1061  }
1062 
1063  return ps_fmt_3;
1064 }
1065 
1066 /*
1067  * Get the metrics of the glyphs.
1068  */
1069 
1070 static void
1072  GLYPH *glyph_list
1073 )
1074 {
1075  int i;
1076  int n_hmetrics = ntohs(hhea_table->numberOfHMetrics);
1077  GLYPH *g;
1078  LONGHORMETRIC *hmtx_entry = hmtx_table;
1079  FWORD *lsblist;
1080 
1081  for (i = 0; i < n_hmetrics; i++) {
1082  g = &(glyph_list[i]);
1083  g->width = ntohs(hmtx_entry->advanceWidth);
1084  g->lsb = ntohs(hmtx_entry->lsb);
1085  hmtx_entry++;
1086  }
1087 
1088  lsblist = (FWORD *) hmtx_entry;
1089  hmtx_entry--;
1090 
1091  for (i = n_hmetrics; i < ttf_nglyphs; i++) {
1092  g = &(glyph_list[i]);
1093  g->width = ntohs(hmtx_entry->advanceWidth);
1094  g->lsb = ntohs(lsblist[i - n_hmetrics]);
1095  }
1096 
1097  for (i = 0; i < ttf_nglyphs; i++) {
1098  g = &(glyph_list[i]);
1099  get_glyf_table(i, &glyf_table, &g->ttf_pathlen);
1100 
1101  g->xMin = (short)ntohs(glyf_table->xMin);
1102  g->xMax = (short)ntohs(glyf_table->xMax);
1103  g->yMin = (short)ntohs(glyf_table->yMin);
1104  g->yMax = (short)ntohs(glyf_table->yMax);
1105  }
1106 
1107 }
1108 
1109 
1110 static void
1112  GLYPH *glyph_list,
1113  int *encoding,
1114  int *unimap
1115 )
1116 {
1117  int j, k, kk, set_ok;
1118  USHORT start, end, ro;
1119  short delta, n;
1120 
1121  for (j = 0; j < cmap_n_segs - 1; j++) {
1123  end = ntohs(cmap_seg_end[j]);
1124  delta = ntohs(cmap_idDelta[j]);
1125  ro = ntohs(cmap_idRangeOffset[j]);
1126 
1127  for (k = start; k <= end; k++) {
1128  if (ro == 0) {
1129  n = k + delta;
1130  } else {
1131  n = ntohs(*((ro >> 1) + (k - start) +
1132  &(cmap_idRangeOffset[j])));
1133  if (delta != 0)
1134  {
1135  /* Not exactly sure how to deal with this circumstance,
1136  I suspect it never occurs */
1137  n += delta;
1138  fprintf (stderr,
1139  "rangeoffset and delta both non-zero - %d/%d",
1140  ro, delta);
1141  }
1142  }
1143  if(n<0 || n>=ttf_nglyphs) {
1144  WARNING_1 fprintf(stderr, "Font contains a broken glyph code mapping, ignored\n");
1145  continue;
1146  }
1147  if (glyph_list[n].orig_code != -1) {
1148 #if 0
1149  if (strcmp(glyph_list[n].name, ".notdef") != 0) {
1150  WARNING_2 fprintf(stderr,
1151  "Glyph %s has >= two encodings (A), %4.4x & %4.4x\n",
1152  glyph_list[n].name,
1153  glyph_list[n].orig_code,
1154  k);
1155  }
1156 #endif
1157  set_ok = 0;
1158  } else {
1159  set_ok = 1;
1160  }
1161  if (enc_type==1 || forcemap) {
1162  kk = unicode_rev_lookup(k);
1163  if(ISDBG(UNICODE))
1164  fprintf(stderr, "Unicode %s - 0x%04x\n",glyph_list[n].name,k);
1165  if (set_ok) {
1166  glyph_list[n].orig_code = k;
1167  /* glyph_list[n].char_no = kk; */
1168  }
1169  if (kk >= 0 && kk < ENCTABSZ && encoding[kk] == -1)
1170  encoding[kk] = n;
1171  } else {
1172  if ((k & 0xff00) == 0xf000) {
1173  if( encoding[k & 0x00ff] == -1 ) {
1174  encoding[k & 0x00ff] = n;
1175  if (set_ok) {
1176  /* glyph_list[n].char_no = k & 0x00ff; */
1177  glyph_list[n].orig_code = k;
1178  }
1179  }
1180  } else {
1181  if (set_ok) {
1182  /* glyph_list[n].char_no = k; */
1183  glyph_list[n].orig_code = k;
1184  }
1185  WARNING_2 fprintf(stderr,
1186  "Glyph %s has non-symbol encoding %4.4x\n",
1187  glyph_list[n].name,
1188  k & 0xffff);
1189  /*
1190  * just use the code
1191  * as it is
1192  */
1193  if ((k & ~0xff) == 0 && encoding[k] == -1 )
1194  encoding[k] = n;
1195  }
1196  }
1197  }
1198  }
1199 }
1200 
1201 static void
1203  GLYPH *glyph_list,
1204  int *encoding,
1205  int *unimap
1206 )
1207 {
1208  short n;
1209  int j, size;
1210 
1211  size = ntohs(encoding0->length) - 6;
1212  for (j = 0; j < size; j++) {
1213  n = encoding0->glyphIdArray[j];
1214  if (glyph_list[n].char_no != -1) {
1215  WARNING_2 fprintf(stderr,
1216  "Glyph %s has >= two encodings (B), %4.4x & %4.4x\n",
1217  glyph_list[n].name,
1218  glyph_list[n].char_no,
1219  j);
1220  } else {
1221  if (j < ENCTABSZ) {
1222  if(encoding[j] == -1) {
1223  glyph_list[n].char_no = j;
1224  encoding[j] = n;
1225  }
1226  }
1227  }
1228  }
1229 }
1230 
1231 /*
1232  * Get the original encoding of the font.
1233  * Returns 1 for if the original encoding is Unicode, 2 if the
1234  * original encoding is other 16-bit, 0 if 8-bit.
1235  */
1236 
1237 static int
1239  GLYPH *glyph_list,
1240  int *encoding,
1241  int *unimap
1242 )
1243 {
1244  int num_tables = ntohs(cmap_table->numberOfEncodingTables);
1245  BYTE *ptr;
1246  int i, format, offset, seg_c2, found;
1247  int platform, encoding_id;
1248  TTF_CMAP_ENTRY *table_entry;
1249  TTF_CMAP_FMT4 *encoding4;
1250 
1251  if(enc_found_ms) {
1253  return enc_type;
1254  } else if(enc_found_mac) {
1256  return 0;
1257  }
1258 
1259  enc_type = 0;
1260  found = 0;
1261 
1262  for (i = 0; i < num_tables && !found; i++) {
1263  table_entry = &(cmap_table->encodingTable[i]);
1264  offset = ntohl(table_entry->offset);
1265  encoding4 = (TTF_CMAP_FMT4 *) ((BYTE *) cmap_table + offset);
1266  format = ntohs(encoding4->format);
1267  platform = ntohs(table_entry->platformID);
1268  encoding_id = ntohs(table_entry->encodingID);
1269 
1270  if (format != 4)
1271  continue;
1272 
1273  if(force_pid != -1) {
1274  if(force_pid != platform || encoding_id != force_eid)
1275  continue;
1276  WARNING_1 fprintf(stderr, "Found Encoding PID=%d/EID=%d\n",
1277  force_pid, force_eid);
1278  enc_type = 1;
1279  } else {
1280  if (platform == 3 ) {
1281  switch (encoding_id) {
1282  case 0:
1283  WARNING_1 fputs("Found Symbol Encoding\n", stderr);
1284  break;
1285  case 1:
1286  WARNING_1 fputs("Found Unicode Encoding\n", stderr);
1287  enc_type = 1;
1288  break;
1289  default:
1290  WARNING_1 {
1291  fprintf(stderr,
1292  "****MS Encoding ID %d not supported****\n",
1293  encoding_id);
1294  fputs("Treating it like Symbol encoding\n", stderr);
1295  }
1296  break;
1297  }
1298  } else
1299  continue;
1300  }
1301 
1302  found = 1;
1303  seg_c2 = ntohs(encoding4->segCountX2);
1304  cmap_n_segs = seg_c2 >> 1;
1305  ptr = (BYTE *) encoding4 + 14;
1306  cmap_seg_end = (USHORT *) ptr;
1307  cmap_seg_start = (USHORT *) (ptr + seg_c2 + 2);
1308  cmap_idDelta = (short *) (ptr + (seg_c2 * 2) + 2);
1309  cmap_idRangeOffset = (short *) (ptr + (seg_c2 * 3) + 2);
1310  enc_found_ms = 1;
1311 
1313  }
1314 
1315  if (!found && force_pid == -1) {
1316  WARNING_1 fputs("No Microsoft encoding, looking for MAC encoding\n", stderr);
1317  for (i = 0; i < num_tables && !found; i++) {
1318  table_entry = &(cmap_table->encodingTable[i]);
1319  offset = ntohl(table_entry->offset);
1322  platform = ntohs(table_entry->platformID);
1323  encoding_id = ntohs(table_entry->encodingID);
1324 
1325  if (format == 0) {
1326  found = 1;
1327  enc_found_mac = 1;
1328 
1330  }
1331  }
1332  }
1333 
1334  if (!found && force_pid == -1) {
1335  WARNING_1 fputs("No MAC encoding either, looking for any format 4 encoding\n", stderr);
1336  for (i = 0; i < num_tables && !found; i++) {
1337  table_entry = &(cmap_table->encodingTable[i]);
1338  offset = ntohl(table_entry->offset);
1339  encoding4 = (TTF_CMAP_FMT4 *) ((BYTE *) cmap_table + offset);
1340  format = ntohs(encoding4->format);
1341  platform = ntohs(table_entry->platformID);
1342  encoding_id = ntohs(table_entry->encodingID);
1343 
1344  if (format != 4)
1345  continue;
1346 
1347  WARNING_1 fprintf(stderr, "Found a last ditch encoding PID=%d/EID=%d, treating it as Unicode.\n",
1348  platform, encoding_id);
1349  found = 1;
1350  enc_type = 1;
1351  seg_c2 = ntohs(encoding4->segCountX2);
1352  cmap_n_segs = seg_c2 >> 1;
1353  ptr = (BYTE *) encoding4 + 14;
1354  cmap_seg_end = (USHORT *) ptr;
1355  cmap_seg_start = (USHORT *) (ptr + seg_c2 + 2);
1356  cmap_idDelta = (short *) (ptr + (seg_c2 * 2) + 2);
1357  cmap_idRangeOffset = (short *) (ptr + (seg_c2 * 3) + 2);
1358  enc_found_ms = 1;
1359 
1361 
1362  }
1363  }
1364 
1365  if (!found) {
1366  if(force_pid != -1) {
1367  fprintf(stderr, "*** TTF encoding table PID=%d/EID=%d not found\n",
1368  force_pid, force_eid);
1369  }
1370  fprintf(stderr, "**** No Recognised Encoding Table ****\n");
1371  if(warnlevel >= 2) {
1372  fprintf(stderr, "Font contains the following unsupported encoding tables:\n");
1373  for (i = 0; i < num_tables && !found; i++) {
1374  table_entry = &(cmap_table->encodingTable[i]);
1375  offset = ntohl(table_entry->offset);
1378  platform = ntohs(table_entry->platformID);
1379  encoding_id = ntohs(table_entry->encodingID);
1380 
1381  fprintf(stderr, " format=%d platform=%d encoding_id=%d\n",
1382  format, platform, encoding_id);
1383  }
1384  }
1385  exit(1);
1386  }
1387 
1388  return enc_type;
1389 }
1390 
1391 /*
1392  * Get the font metrics
1393  */
1394 static void
1396  struct font_metrics *fm
1397 )
1398 {
1399  char *str;
1400  static int fieldstocheck[]= {2,4,6};
1401  int i, j, len;
1402 
1404  ((short) ntohs(post_table->italicAngle.lower) / 65536.0);
1408 
1411 
1413 
1414  fm->bbox[0] = (short) ntohs(head_table->xMin);
1415  fm->bbox[1] = (short) ntohs(head_table->yMin);
1416  fm->bbox[2] = (short) ntohs(head_table->xMax);
1417  fm->bbox[3] = (short) ntohs(head_table->yMax);
1418 
1419  fm->name_copyright = name_fields[0];
1420  fm->name_family = name_fields[1];
1421  fm->name_style = name_fields[2];
1422  fm->name_full = name_fields[4];
1423  fm->name_version = name_fields[5];
1424  fm->name_ps = name_fields[6];
1425 
1426  /* guess the boldness from the font names */
1427  fm->force_bold=0;
1428 
1429  for(i=0; !fm->force_bold && i<sizeof fieldstocheck /sizeof(int); i++) {
1430  str = name_fields[fieldstocheck[i]];
1431  len = (int)strlen(str);
1432  for(j=0; j<len; j++) {
1433  if( (str[j]=='B'
1434  || str[j]=='b'
1435  && ( j==0 || !isalpha(str[j-1]) )
1436  )
1437  && !strncmp("old",&str[j+1],3)
1438  && (j+4 >= len || !islower(str[j+4]))
1439  ) {
1440  fm->force_bold=1;
1441  break;
1442  }
1443  }
1444  }
1445 }
1446 
1447 /*
1448  * Get the path of contrours for a glyph.
1449  */
1450 
1451 static void
1453  int glyphno,
1454  GLYPH *glyf_list
1455 )
1456 {
1457  double matrix[6];
1458  GLYPH *g;
1459 
1460  g = &glyph_list[glyphno];
1461 
1462  matrix[0] = matrix[3] = 1.0;
1463  matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0.0;
1464  draw_composite_glyf(g, glyf_list, glyphno, matrix, 0 /*level*/);
1465 }
1466 
1467 /*
1468  * Get the kerning data.
1469  */
1470 
1471 static void
1473  GLYPH *glyph_list
1474 )
1475 {
1476  TTF_KERN_SUB *subtable;
1478  int i, j;
1479  int ntables;
1480  int npairs;
1481  char *ptr;
1482 
1483  if(kern_table == NULL) {
1484  WARNING_1 fputs("No Kerning data\n", stderr);
1485  return;
1486  }
1487  if(badpointer(kern_table)) {
1488  fputs("**** Defective Kerning table, ignored\n", stderr);
1489  return;
1490  }
1491 
1492  ntables = ntohs(kern_table->nTables);
1493  ptr = (char *) kern_table + 4;
1494 
1495  for (i = 0; i < ntables; i++) {
1496  subtable = (TTF_KERN_SUB *) ptr;
1497  if ((ntohs(subtable->coverage) & 0xff00) == 0) {
1498  npairs = (short) ntohs(subtable->nPairs);
1499  kern_entry = (TTF_KERN_ENTRY *) (ptr + sizeof(TTF_KERN_SUB));
1500 
1501  kern_entry = (TTF_KERN_ENTRY *) (ptr + sizeof(TTF_KERN_SUB));
1502  for (j = 0; j < npairs; j++) {
1503  if( kern_entry->value != 0)
1504  addkernpair(ntohs(kern_entry->left),
1505  ntohs(kern_entry->right), (short)ntohs(kern_entry->value));
1506  kern_entry++;
1507  }
1508  }
1509  ptr += subtable->length;
1510  }
1511 }
1512 
return _Result< 0 ? -1 :_Result;} #line 1069 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vsnwprintf_s_l(wchar_t *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsnwprintf_s((*__local_stdio_printf_options()), _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1091 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vsnwprintf_s(wchar_t *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, wchar_t const *const _Format, va_list _ArgList) { return _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format,((void *) 0), _ArgList);} #line 1108 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snwprintf(wchar_t *_Buffer, size_t _BufferCount, wchar_t const *_Format,...);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsnwprintf(wchar_t *_Buffer, size_t _BufferCount, wchar_t const *_Format, va_list _Args);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsnwprintf(wchar_t *_Buffer, size_t _BufferCount, wchar_t const *_Format, va_list _ArgList) { return _vsnwprintf_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1133 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_c_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vswprintf((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1163 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_c(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, va_list _ArgList) { return _vswprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1179 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);} #line 1196 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl __vswprintf_l(wchar_t *const _Buffer, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vswprintf_l(_Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 1212 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf(wchar_t *const _Buffer, wchar_t const *const _Format, va_list _ArgList) { return _vswprintf_l(_Buffer,(size_t) -1, _Format,((void *) 0), _ArgList);} #line 1227 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl vswprintf(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, va_list _ArgList) { return _vswprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1243 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_s_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vswprintf_s((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1264 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl vswprintf_s(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, va_list _ArgList) { return _vswprintf_s_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1281 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" #line 1283 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_p_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vswprintf_p((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1312 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswprintf_p(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, va_list _ArgList) { return _vswprintf_p_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1328 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vscwprintf_l(wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vswprintf((*__local_stdio_printf_options())|(1ULL<< 1),((void *) 0), 0, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1347 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vscwprintf(wchar_t const *const _Format, va_list _ArgList) { return _vscwprintf_l(_Format,((void *) 0), _ArgList);} #line 1361 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vscwprintf_p_l(wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vswprintf_p((*__local_stdio_printf_options())|(1ULL<< 1),((void *) 0), 0, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1380 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vscwprintf_p(wchar_t const *const _Format, va_list _ArgList) { return _vscwprintf_p_l(_Format,((void *) 0), _ArgList);} #line 1394 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl __swprintf_l(wchar_t *const _Buffer, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__vswprintf_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1414 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1435 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf(wchar_t *const _Buffer, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__vswprintf_l(_Buffer, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1454 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl swprintf(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1474 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "__swprintf_l_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl __swprintf_l(wchar_t *_Buffer, wchar_t const *_Format, _locale_t _Locale,...);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_vswprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl __vswprintf_l(wchar_t *_Buffer, wchar_t const *_Format, _locale_t _Locale, va_list _Args);__declspec(deprecated("This function or variable may be unsafe. Consider using " "swprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _swprintf(wchar_t *_Buffer, wchar_t const *_Format,...);__declspec(deprecated("This function or variable may be unsafe. Consider using " "vswprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vswprintf(wchar_t *_Buffer, wchar_t const *_Format, va_list _Args);__inline int __cdecl _swprintf_s_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1511 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl swprintf_s(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_s_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1532 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" #line 1534 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf_p_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1562 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf_p(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_p_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1582 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf_c_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1603 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swprintf_c(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1623 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snwprintf_l(wchar_t *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1646 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _snwprintf(wchar_t *_Buffer, size_t _BufferCount, wchar_t const *_Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwprintf_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1668 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _snwprintf_s_l(wchar_t *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1690 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _snwprintf_s(wchar_t *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1711 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _scwprintf_l(wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscwprintf_l(_Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1737 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _scwprintf(wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscwprintf_l(_Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1755 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _scwprintf_p_l(wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscwprintf_p_l(_Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1774 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _scwprintf_p(wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscwprintf_p_l(_Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1792 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" #pragma warning(push) #pragma warning(disable:4141 6054) #pragma warning(pop) #line 1856 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" int __cdecl __stdio_common_vswscanf(unsigned __int64 _Options, wchar_t const *_Buffer, size_t _BufferCount, wchar_t const *_Format, _locale_t _Locale, va_list _ArgList);__inline int __cdecl _vswscanf_l(wchar_t const *const _Buffer, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vswscanf((*__local_stdio_scanf_options()), _Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 1897 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl vswscanf(wchar_t const *_Buffer, wchar_t const *_Format, va_list _ArgList) { return _vswscanf_l(_Buffer, _Format,((void *) 0), _ArgList);} #line 1912 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vswscanf_s_l(wchar_t const *const _Buffer, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vswscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 1930 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl vswscanf_s(wchar_t const *const _Buffer, wchar_t const *const _Format, va_list _ArgList) { return _vswscanf_s_l(_Buffer, _Format,((void *) 0), _ArgList);} #line 1947 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" #line 1949 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsnwscanf_l(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vswscanf((*__local_stdio_scanf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);} #line 1976 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _vsnwscanf_s_l(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vswscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Buffer, _BufferCount, _Format, _Locale, _ArgList);} #line 1995 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_swscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _swscanf_l(wchar_t const *const _Buffer, wchar_t const *const _Format, _locale_t _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswscanf_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2015 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "swscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl swscanf(wchar_t const *const _Buffer, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswscanf_l(_Buffer, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2034 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _swscanf_s_l(wchar_t const *const _Buffer, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswscanf_s_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2054 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl swscanf_s(wchar_t const *const _Buffer, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vswscanf_s_l(_Buffer, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2075 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" #line 2077 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snwscanf_l(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwscanf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2100 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snwscanf(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwscanf_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2122 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _snwscanf_s_l(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwscanf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2143 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __inline int __cdecl _snwscanf_s(wchar_t const *const _Buffer, size_t const _BufferCount, wchar_t const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnwscanf_s_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2163 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstdio.h" __pragma(pack(pop))#pragma warning(pop) #pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) typedef __int64 fpos_t;errno_t __cdecl _get_stream_buffer_pointers(FILE *_Stream, char ***_Base, char ***_Pointer, int **_Count);errno_t __cdecl clearerr_s(FILE *_Stream);errno_t __cdecl fopen_s(FILE **_Stream, char const *_FileName, char const *_Mode);size_t __cdecl fread_s(void *_Buffer, size_t _BufferSize, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);errno_t __cdecl freopen_s(FILE **_Stream, char const *_FileName, char const *_Mode, FILE *_OldStream);char *__cdecl gets_s(char *_Buffer, rsize_t _Size);errno_t __cdecl tmpfile_s(FILE **_Stream);errno_t __cdecl tmpnam_s(char *_Buffer, rsize_t _Size);#line 145 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" void __cdecl clearerr(FILE *_Stream);int __cdecl fclose(FILE *_Stream);int __cdecl _fcloseall(void);FILE *__cdecl _fdopen(int _FileHandle, char const *_Mode);int __cdecl feof(FILE *_Stream);int __cdecl ferror(FILE *_Stream);int __cdecl fflush(FILE *_Stream);int __cdecl fgetc(FILE *_Stream);int __cdecl _fgetchar(void);int __cdecl fgetpos(FILE *_Stream, fpos_t *_Position);char *__cdecl fgets(char *_Buffer, int _MaxCount, FILE *_Stream);int __cdecl _fileno(FILE *_Stream);int __cdecl _flushall(void);__declspec(deprecated("This function or variable may be unsafe. Consider using " "fopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) FILE *__cdecl fopen(char const *_FileName, char const *_Mode);int __cdecl fputc(int _Character, FILE *_Stream);int __cdecl _fputchar(int _Character);int __cdecl fputs(char const *_Buffer, FILE *_Stream);size_t __cdecl fread(void *_Buffer, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);__declspec(deprecated("This function or variable may be unsafe. Consider using " "freopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) FILE *__cdecl freopen(char const *_FileName, char const *_Mode, FILE *_Stream);FILE *__cdecl _fsopen(char const *_FileName, char const *_Mode, int _ShFlag);int __cdecl fsetpos(FILE *_Stream, fpos_t const *_Position);int __cdecl fseek(FILE *_Stream, long _Offset, int _Origin);int __cdecl _fseeki64(FILE *_Stream, __int64 _Offset, int _Origin);long __cdecl ftell(FILE *_Stream);__int64 __cdecl _ftelli64(FILE *_Stream);size_t __cdecl fwrite(void const *_Buffer, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);int __cdecl getc(FILE *_Stream);int __cdecl getchar(void);int __cdecl _getmaxstdio(void);int __cdecl _getw(FILE *_Stream);void __cdecl perror(char const *_ErrorMessage);int __cdecl _pclose(FILE *_Stream);FILE *__cdecl _popen(char const *_Command, char const *_Mode);#line 344 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl putc(int _Character, FILE *_Stream);int __cdecl putchar(int _Character);int __cdecl puts(char const *_Buffer);int __cdecl _putw(int _Word, FILE *_Stream);int __cdecl remove(char const *_FileName);int __cdecl rename(char const *_OldFileName, char const *_NewFileName);int __cdecl _unlink(char const *_FileName);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_unlink" ". See online help for details.")) int __cdecl unlink(char const *_FileName);#line 391 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" void __cdecl rewind(FILE *_Stream);int __cdecl _rmtmp(void);__declspec(deprecated("This function or variable may be unsafe. Consider using " "setvbuf" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) void __cdecl setbuf(FILE *_Stream, char *_Buffer);int __cdecl _setmaxstdio(int _Maximum);int __cdecl setvbuf(FILE *_Stream, char *_Buffer, int _Mode, size_t _Size);__declspec(allocator) char *__cdecl _tempnam(char const *_DirectoryName, char const *_FilePrefix);__declspec(deprecated("This function or variable may be unsafe. Consider using " "tmpfile_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) FILE *__cdecl tmpfile(void);__declspec(deprecated("This function or variable may be unsafe. Consider using " "tmpnam_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl tmpnam(char *_Buffer);int __cdecl ungetc(int _Character, FILE *_Stream);void __cdecl _lock_file(FILE *_Stream);void __cdecl _unlock_file(FILE *_Stream);int __cdecl _fclose_nolock(FILE *_Stream);int __cdecl _fflush_nolock(FILE *_Stream);int __cdecl _fgetc_nolock(FILE *_Stream);int __cdecl _fputc_nolock(int _Character, FILE *_Stream);size_t __cdecl _fread_nolock(void *_Buffer, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);size_t __cdecl _fread_nolock_s(void *_Buffer, size_t _BufferSize, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);int __cdecl _fseek_nolock(FILE *_Stream, long _Offset, int _Origin);int __cdecl _fseeki64_nolock(FILE *_Stream, __int64 _Offset, int _Origin);long __cdecl _ftell_nolock(FILE *_Stream);__int64 __cdecl _ftelli64_nolock(FILE *_Stream);size_t __cdecl _fwrite_nolock(void const *_Buffer, size_t _ElementSize, size_t _ElementCount, FILE *_Stream);int __cdecl _getc_nolock(FILE *_Stream);int __cdecl _putc_nolock(int _Character, FILE *_Stream);int __cdecl _ungetc_nolock(int _Character, FILE *_Stream);int *__cdecl __p__commode(void);#line 596 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl __stdio_common_vfprintf(unsigned __int64 _Options, FILE *_Stream, char const *_Format, _locale_t _Locale, va_list _ArgList);int __cdecl __stdio_common_vfprintf_s(unsigned __int64 _Options, FILE *_Stream, char const *_Format, _locale_t _Locale, va_list _ArgList);int __cdecl __stdio_common_vfprintf_p(unsigned __int64 _Options, FILE *_Stream, char const *_Format, _locale_t _Locale, va_list _ArgList);__inline int __cdecl _vfprintf_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vfprintf((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList);} #line 648 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vfprintf(FILE *const _Stream, char const *const _Format, va_list _ArgList) { return _vfprintf_l(_Stream, _Format,((void *) 0), _ArgList);} #line 662 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vfprintf_s_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vfprintf_s((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList);} #line 677 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vfprintf_s(FILE *const _Stream, char const *const _Format, va_list _ArgList) { return _vfprintf_s_l(_Stream, _Format,((void *) 0), _ArgList);} #line 693 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 695 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vfprintf_p_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vfprintf_p((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList);} #line 710 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vfprintf_p(FILE *const _Stream, char const *const _Format, va_list _ArgList) { return _vfprintf_p_l(_Stream, _Format,((void *) 0), _ArgList);} #line 724 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vprintf_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vfprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);} #line 738 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vprintf(char const *const _Format, va_list _ArgList) { return _vfprintf_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);} #line 751 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vprintf_s_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vfprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);} #line 765 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vprintf_s(char const *const _Format, va_list _ArgList) { return _vfprintf_s_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);} #line 780 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 782 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vprintf_p_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vfprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);} #line 796 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vprintf_p(char const *const _Format, va_list _ArgList) { return _vfprintf_p_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);} #line 809 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _fprintf_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_l(_Stream, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 828 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl fprintf(FILE *const _Stream, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_l(_Stream, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 846 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl _set_printf_count_output(int _Value);int __cdecl _get_printf_count_output(void);__inline int __cdecl _fprintf_s_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_s_l(_Stream, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 871 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl fprintf_s(FILE *const _Stream, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_s_l(_Stream, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 891 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 893 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _fprintf_p_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_p_l(_Stream, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 912 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _fprintf_p(FILE *const _Stream, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_p_l(_Stream, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 930 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _printf_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 948 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl printf(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 965 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _printf_s_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 983 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl printf_s(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_s_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1002 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1004 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _printf_p_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1022 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _printf_p(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfprintf_p_l((__acrt_iob_func(1)), _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1039 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl __stdio_common_vfscanf(unsigned __int64 _Options, FILE *_Stream, char const *_Format, _locale_t _Locale, va_list _Arglist);__inline int __cdecl _vfscanf_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vfscanf((*__local_stdio_scanf_options()), _Stream, _Format, _Locale, _ArgList);} #line 1070 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vfscanf(FILE *const _Stream, char const *const _Format, va_list _ArgList) { return _vfscanf_l(_Stream, _Format,((void *) 0), _ArgList);} #line 1084 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vfscanf_s_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vfscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Stream, _Format, _Locale, _ArgList);} #line 1101 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vfscanf_s(FILE *const _Stream, char const *const _Format, va_list _ArgList) { return _vfscanf_s_l(_Stream, _Format,((void *) 0), _ArgList);} #line 1118 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1120 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscanf_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vfscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList);} #line 1134 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vscanf(char const *const _Format, va_list _ArgList) { return _vfscanf_l((__acrt_iob_func(0)), _Format,((void *) 0), _ArgList);} #line 1147 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscanf_s_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vfscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList);} #line 1161 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vscanf_s(char const *const _Format, va_list _ArgList) { return _vfscanf_s_l((__acrt_iob_func(0)), _Format,((void *) 0), _ArgList);} #line 1176 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1178 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _fscanf_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_l(_Stream, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1197 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "fscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl fscanf(FILE *const _Stream, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_l(_Stream, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1215 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _fscanf_s_l(FILE *const _Stream, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_s_l(_Stream, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1234 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl fscanf_s(FILE *const _Stream, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_s_l(_Stream, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1254 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1256 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_scanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _scanf_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1274 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "scanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl scanf(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_l((__acrt_iob_func(0)), _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1291 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _scanf_s_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1309 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl scanf_s(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vfscanf_s_l((__acrt_iob_func(0)), _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1328 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1330 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl __stdio_common_vsprintf(unsigned __int64 _Options, char *_Buffer, size_t _BufferCount, char const *_Format, _locale_t _Locale, va_list _ArgList);int __cdecl __stdio_common_vsprintf_s(unsigned __int64 _Options, char *_Buffer, size_t _BufferCount, char const *_Format, _locale_t _Locale, va_list _ArgList);int __cdecl __stdio_common_vsnprintf_s(unsigned __int64 _Options, char *_Buffer, size_t _BufferCount, size_t _MaxCount, char const *_Format, _locale_t _Locale, va_list _ArgList);int __cdecl __stdio_common_vsprintf_p(unsigned __int64 _Options, char *_Buffer, size_t _BufferCount, char const *_Format, _locale_t _Locale, va_list _ArgList);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsnprintf_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf((*__local_stdio_printf_options())|(1ULL<< 0), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1399 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsnprintf(char *const _Buffer, size_t const _BufferCount, char const *const _Format, va_list _ArgList) { return _vsnprintf_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1415 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vsnprintf(char *const _Buffer, size_t const _BufferCount, char const *const _Format, va_list _ArgList) { int const _Result=__stdio_common_vsprintf((*__local_stdio_printf_options())|(1ULL<< 1), _Buffer, _BufferCount, _Format,((void *) 0), _ArgList);return _Result< 0 ? -1 :_Result;} #line 1446 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsprintf_l(char *const _Buffer, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return _vsnprintf_l(_Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 1462 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "vsprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl vsprintf(char *const _Buffer, char const *const _Format, va_list _ArgList) { return _vsnprintf_l(_Buffer,(size_t) -1, _Format,((void *) 0), _ArgList);} #line 1477 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsprintf_s_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf_s((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1498 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vsprintf_s(char *const _Buffer, size_t const _BufferCount, char const *const _Format, va_list _ArgList) { return _vsprintf_s_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1516 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1526 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsprintf_p_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf_p((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1547 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsprintf_p(char *const _Buffer, size_t const _BufferCount, char const *const _Format, va_list _ArgList) { return _vsprintf_p_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1563 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsnprintf_s_l(char *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsnprintf_s((*__local_stdio_printf_options()), _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1585 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsnprintf_s(char *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, char const *const _Format, va_list _ArgList) { return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format,((void *) 0), _ArgList);} #line 1602 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vsnprintf_s(char *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, char const *const _Format, va_list _ArgList) { return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format,((void *) 0), _ArgList);} #line 1630 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1641 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscprintf_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf((*__local_stdio_printf_options())|(1ULL<< 1),((void *) 0), 0, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1659 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscprintf(char const *const _Format, va_list _ArgList) { return _vscprintf_l(_Format,((void *) 0), _ArgList);} #line 1672 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscprintf_p_l(char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf_p((*__local_stdio_printf_options())|(1ULL<< 1),((void *) 0), 0, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1690 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vscprintf_p(char const *const _Format, va_list _ArgList) { return _vscprintf_p_l(_Format,((void *) 0), _ArgList);} #line 1703 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsnprintf_c_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { int const _Result=__stdio_common_vsprintf((*__local_stdio_printf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);return _Result< 0 ? -1 :_Result;} #line 1723 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsnprintf_c(char *const _Buffer, size_t const _BufferCount, char const *const _Format, va_list _ArgList) { return _vsnprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);} #line 1739 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_sprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _sprintf_l(char *const _Buffer, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1761 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl sprintf(char *const _Buffer, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_l(_Buffer, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1782 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "sprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl sprintf(char *_Buffer, char const *_Format,...);__declspec(deprecated("This function or variable may be unsafe. Consider using " "vsprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl vsprintf(char *_Buffer, char const *_Format, va_list _Args);__inline int __cdecl _sprintf_s_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1810 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl sprintf_s(char *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_s_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1832 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 1834 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _sprintf_p_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1862 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _sprintf_p(char *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsprintf_p_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1882 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snprintf_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1905 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl snprintf(char *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=vsnprintf(_Buffer, _BufferCount, _Format, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1936 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snprintf(char *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf(_Buffer, _BufferCount, _Format, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1956 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl _snprintf(char *_Buffer, size_t _BufferCount, char const *_Format,...);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl _vsnprintf(char *_Buffer, size_t _BufferCount, char const *_Format, va_list _Args);__inline int __cdecl _snprintf_c_l(char *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 1986 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snprintf_c(char *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf_c_l(_Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2006 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snprintf_s_l(char *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2028 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snprintf_s(char *const _Buffer, size_t const _BufferCount, size_t const _MaxCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2049 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _scprintf_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscprintf_l(_Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2075 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _scprintf(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscprintf_l(_Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2092 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _scprintf_p_l(char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscprintf_p_l(_Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2110 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _scprintf_p(char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vscprintf_p(_Format, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2127 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" int __cdecl __stdio_common_vsscanf(unsigned __int64 _Options, char const *_Buffer, size_t _BufferCount, char const *_Format, _locale_t _Locale, va_list _ArgList);__inline int __cdecl _vsscanf_l(char const *const _Buffer, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vsscanf((*__local_stdio_scanf_options()), _Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 2158 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl vsscanf(char const *const _Buffer, char const *const _Format, va_list _ArgList) { return _vsscanf_l(_Buffer, _Format,((void *) 0), _ArgList);} #line 2172 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _vsscanf_s_l(char const *const _Buffer, char const *const _Format, _locale_t const _Locale, va_list _ArgList) { return __stdio_common_vsscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Buffer,(size_t) -1, _Format, _Locale, _ArgList);} #line 2189 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #pragma warning(push) #pragma warning(disable:6530) __inline int __cdecl vsscanf_s(char const *const _Buffer, char const *const _Format, va_list _ArgList) { return _vsscanf_s_l(_Buffer, _Format,((void *) 0), _ArgList);} #line 2208 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #pragma warning(pop) #line 2219 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_sscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _sscanf_l(char const *const _Buffer, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsscanf_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2238 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "sscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl sscanf(char const *const _Buffer, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsscanf_l(_Buffer, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2256 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _sscanf_s_l(char const *const _Buffer, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=_vsscanf_s_l(_Buffer, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2275 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl sscanf_s(char const *const _Buffer, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=vsscanf_s(_Buffer, _Format, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2297 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #line 2299 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #pragma warning(push) #pragma warning(disable:6530) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snscanf_l(char const *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__stdio_common_vsscanf((*__local_stdio_scanf_options()), _Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2326 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snscanf(char const *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__stdio_common_vsscanf((*__local_stdio_scanf_options()), _Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2349 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snscanf_s_l(char const *const _Buffer, size_t const _BufferCount, char const *const _Format, _locale_t const _Locale,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Locale))+((sizeof(_Locale)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__stdio_common_vsscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Buffer, _BufferCount, _Format, _Locale, _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2374 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" __inline int __cdecl _snscanf_s(char const *const _Buffer, size_t const _BufferCount, char const *const _Format,...) { int _Result;va_list _ArgList;((void)(_ArgList=(va_list)(&(_Format))+((sizeof(_Format)+sizeof(int) - 1) &~(sizeof(int) - 1)))) ;_Result=__stdio_common_vsscanf((*__local_stdio_scanf_options())|(1ULL<< 0), _Buffer, _BufferCount, _Format,((void *) 0), _ArgList);((void)(_ArgList=(va_list) 0)) ;return _Result;} #line 2397 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h" #pragma warning(pop) __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_tempnam" ". See online help for details.")) char *__cdecl tempnam(char const *_Directory, char const *_FilePrefix);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fcloseall" ". See online help for details.")) int __cdecl fcloseall(void);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fdopen" ". See online help for details.")) FILE *__cdecl fdopen(int _FileHandle, char const *_Format);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fgetchar" ". See online help for details.")) int __cdecl fgetchar(void);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fileno" ". See online help for details.")) int __cdecl fileno(FILE *_Stream);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_flushall" ". See online help for details.")) int __cdecl flushall(void);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fputchar" ". See online help for details.")) int __cdecl fputchar(int _Ch);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_getw" ". See online help for details.")) int __cdecl getw(FILE *_Stream);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_putw" ". See online help for details.")) int __cdecl putw(int _Ch, FILE *_Stream);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_rmtmp" ". See online help for details.")) int __cdecl rmtmp(void);#line 2441 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\stdio.h"__pragma(pack(pop))#pragma warning(pop) #pragma once#pragma once#pragma once#pragma once#pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) int *__cdecl _errno(void);errno_t __cdecl _set_errno(int _Value);errno_t __cdecl _get_errno(int *_Value);unsigned long *__cdecl __doserrno(void);errno_t __cdecl _set_doserrno(unsigned long _Value);errno_t __cdecl _get_doserrno(unsigned long *_Value);__pragma(pack(pop))#pragma warning(pop) #pragma once#pragma warning(push)#pragma warning(disable:4514 4820) __pragma(pack(push, 8)) void *__cdecl memchr(void const *_Buf, int _Val, size_t _MaxCount);int __cdecl memcmp(void const *_Buf1, void const *_Buf2, size_t _Size);void *__cdecl memcpy(void *_Dst, void const *_Src, size_t _Size);void *__cdecl memmove(void *_Dst, void const *_Src, size_t _Size);void *__cdecl memset(void *_Dst, int _Val, size_t _Size);char *__cdecl strchr(char const *_Str, int _Val);char *__cdecl strrchr(char const *_Str, int _Ch);char *__cdecl strstr(char const *_Str, char const *_SubStr);wchar_t *__cdecl wcschr(wchar_t const *_Str, wchar_t _Ch);wchar_t *__cdecl wcsrchr(wchar_t const *_Str, wchar_t _Ch);wchar_t *__cdecl wcsstr(wchar_t const *_Str, wchar_t const *_SubStr);__pragma(pack(pop))#pragma warning(pop) #pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) static __inline errno_t __cdecl memcpy_s(void *const _Destination, rsize_t const _DestinationSize, void const *const _Source, rsize_t const _SourceSize) { if(_SourceSize==0) { return 0;} { int _Expr_val=!!(_Destination !=((void *) 0));if(!(_Expr_val)) {(*_errno())=22;_invalid_parameter_noinfo();return 22;} } ;if(_Source==((void *) 0)||_DestinationSize< _SourceSize) { memset(_Destination, 0, _DestinationSize);{ int _Expr_val=!!(_Source !=((void *) 0));if(!(_Expr_val)) {(*_errno())=22;_invalid_parameter_noinfo();return 22;} } ;{ int _Expr_val=!!(_DestinationSize >=_SourceSize);if(!(_Expr_val)) {(*_errno())=34;_invalid_parameter_noinfo();return 34;} } ;return 22 ;} memcpy(_Destination, _Source, _SourceSize);return 0;} static __inline errno_t __cdecl memmove_s(void *const _Destination, rsize_t const _DestinationSize, void const *const _Source, rsize_t const _SourceSize) { if(_SourceSize==0) { return 0;} { int _Expr_val=!!(_Destination !=((void *) 0));if(!(_Expr_val)) {(*_errno())=22;_invalid_parameter_noinfo();return 22;} } ;{ int _Expr_val=!!(_Source !=((void *) 0));if(!(_Expr_val)) {(*_errno())=22;_invalid_parameter_noinfo();return 22;} } ;{ int _Expr_val=!!(_DestinationSize >=_SourceSize);if(!(_Expr_val)) {(*_errno())=34;_invalid_parameter_noinfo();return 34;} } ;memmove(_Destination, _Source, _SourceSize);return 0;}#pragma warning(pop) __pragma(pack(pop))#pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) int __cdecl _memicmp(void const *_Buf1, void const *_Buf2, size_t _Size);int __cdecl _memicmp_l(void const *_Buf1, void const *_Buf2, size_t _Size, _locale_t _Locale);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_memccpy" ". See online help for details.")) void *__cdecl memccpy(void *_Dst, void const *_Src, int _Val, size_t _Size);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_memicmp" ". See online help for details.")) int __cdecl memicmp(void const *_Buf1, void const *_Buf2, size_t _Size);__pragma(pack(pop))#pragma warning(pop) #pragma once#pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) errno_t __cdecl wcscat_s(wchar_t *_Destination, rsize_t _SizeInWords, wchar_t const *_Source);errno_t __cdecl wcscpy_s(wchar_t *_Destination, rsize_t _SizeInWords, wchar_t const *_Source);errno_t __cdecl wcsncat_s(wchar_t *_Destination, rsize_t _SizeInWords, wchar_t const *_Source, rsize_t _MaxCount);errno_t __cdecl wcsncpy_s(wchar_t *_Destination, rsize_t _SizeInWords, wchar_t const *_Source, rsize_t _MaxCount);wchar_t *__cdecl wcstok_s(wchar_t *_String, wchar_t const *_Delimiter, wchar_t **_Context);__declspec(allocator) wchar_t *__cdecl _wcsdup(wchar_t const *_String);__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcscat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl wcscat(wchar_t *_Destination, wchar_t const *_Source);int __cdecl wcscmp(wchar_t const *_String1, wchar_t const *_String2);__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcscpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl wcscpy(wchar_t *_Destination, wchar_t const *_Source);size_t __cdecl wcscspn(wchar_t const *_String, wchar_t const *_Control);size_t __cdecl wcslen(wchar_t const *_String);size_t __cdecl wcsnlen(wchar_t const *_Source, size_t _MaxCount);static __inline size_t __cdecl wcsnlen_s(wchar_t const *_Source, size_t _MaxCount) { return(_Source==0) ? 0 :wcsnlen(_Source, _MaxCount);}__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcsncat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl wcsncat(wchar_t *_Destination, wchar_t const *_Source, size_t _Count);int __cdecl wcsncmp(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount);__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcsncpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl wcsncpy(wchar_t *_Destination, wchar_t const *_Source, size_t _Count);wchar_t *__cdecl wcspbrk(wchar_t const *_String, wchar_t const *_Control);size_t __cdecl wcsspn(wchar_t const *_String, wchar_t const *_Control);__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcstok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl wcstok(wchar_t *_String, wchar_t const *_Delimiter, wchar_t **_Context);#line 237 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\corecrt_wstring.h" __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcstok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) static __inline wchar_t *__cdecl _wcstok(wchar_t *const _String, wchar_t const *const _Delimiter) { return wcstok(_String, _Delimiter, 0);} __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcserror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcserror(int _ErrorNumber);errno_t __cdecl _wcserror_s(wchar_t *_Buffer, size_t _SizeInWords, int _ErrorNumber);__declspec(deprecated("This function or variable may be unsafe. Consider using " "__wcserror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl __wcserror(wchar_t const *_String);errno_t __cdecl __wcserror_s(wchar_t *_Buffer, size_t _SizeInWords, wchar_t const *_ErrorMessage);int __cdecl _wcsicmp(wchar_t const *_String1, wchar_t const *_String2);int __cdecl _wcsicmp_l(wchar_t const *_String1, wchar_t const *_String2, _locale_t _Locale);int __cdecl _wcsnicmp(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount);int __cdecl _wcsnicmp_l(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount, _locale_t _Locale);errno_t __cdecl _wcsnset_s(wchar_t *_Destination, size_t _SizeInWords, wchar_t _Value, size_t _MaxCount);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsnset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcsnset(wchar_t *_String, wchar_t _Value, size_t _MaxCount);wchar_t *__cdecl _wcsrev(wchar_t *_String);errno_t __cdecl _wcsset_s(wchar_t *_Destination, size_t _SizeInWords, wchar_t _Value);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcsset(wchar_t *_String, wchar_t _Value);errno_t __cdecl _wcslwr_s(wchar_t *_String, size_t _SizeInWords);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcslwr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcslwr(wchar_t *_String);errno_t __cdecl _wcslwr_s_l(wchar_t *_String, size_t _SizeInWords, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcslwr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcslwr_l(wchar_t *_String, _locale_t _Locale);errno_t __cdecl _wcsupr_s(wchar_t *_String, size_t _Size);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsupr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcsupr(wchar_t *_String);errno_t __cdecl _wcsupr_s_l(wchar_t *_String, size_t _Size, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsupr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t *__cdecl _wcsupr_l(wchar_t *_String, _locale_t _Locale);size_t __cdecl wcsxfrm(wchar_t *_Destination, wchar_t const *_Source, size_t _MaxCount);size_t __cdecl _wcsxfrm_l(wchar_t *_Destination, wchar_t const *_Source, size_t _MaxCount, _locale_t _Locale);int __cdecl wcscoll(wchar_t const *_String1, wchar_t const *_String2);int __cdecl _wcscoll_l(wchar_t const *_String1, wchar_t const *_String2, _locale_t _Locale);int __cdecl _wcsicoll(wchar_t const *_String1, wchar_t const *_String2);int __cdecl _wcsicoll_l(wchar_t const *_String1, wchar_t const *_String2, _locale_t _Locale);int __cdecl _wcsncoll(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount);int __cdecl _wcsncoll_l(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount, _locale_t _Locale);int __cdecl _wcsnicoll(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount);int __cdecl _wcsnicoll_l(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount, _locale_t _Locale);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsdup" ". See online help for details.")) wchar_t *__cdecl wcsdup(wchar_t const *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsicmp" ". See online help for details.")) int __cdecl wcsicmp(wchar_t const *_String1, wchar_t const *_String2);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsnicmp" ". See online help for details.")) int __cdecl wcsnicmp(wchar_t const *_String1, wchar_t const *_String2, size_t _MaxCount);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsnset" ". See online help for details.")) wchar_t *__cdecl wcsnset(wchar_t *_String, wchar_t _Value, size_t _MaxCount);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsrev" ". See online help for details.")) wchar_t *__cdecl wcsrev(wchar_t *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsset" ". See online help for details.")) wchar_t *__cdecl wcsset(wchar_t *_String, wchar_t _Value);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcslwr" ". See online help for details.")) wchar_t *__cdecl wcslwr(wchar_t *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsupr" ". See online help for details.")) wchar_t *__cdecl wcsupr(wchar_t *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsicoll" ". See online help for details.")) int __cdecl wcsicoll(wchar_t const *_String1, wchar_t const *_String2);__pragma(pack(pop))#pragma warning(pop) #pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) __pragma(pack(push, 8)) errno_t __cdecl strcpy_s(char *_Destination, rsize_t _SizeInBytes, char const *_Source);errno_t __cdecl strcat_s(char *_Destination, rsize_t _SizeInBytes, char const *_Source);errno_t __cdecl strerror_s(char *_Buffer, size_t _SizeInBytes, int _ErrorNumber);errno_t __cdecl strncat_s(char *_Destination, rsize_t _SizeInBytes, char const *_Source, rsize_t _MaxCount);errno_t __cdecl strncpy_s(char *_Destination, rsize_t _SizeInBytes, char const *_Source, rsize_t _MaxCount);char *__cdecl strtok_s(char *_String, char const *_Delimiter, char **_Context);void *__cdecl _memccpy(void *_Dst, void const *_Src, int _Val, size_t _MaxCount);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strcat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strcat(char *_Destination, char const *_Source);int __cdecl strcmp(char const *_Str1, char const *_Str2);int __cdecl _strcmpi(char const *_String1, char const *_String2);int __cdecl strcoll(char const *_String1, char const *_String2);int __cdecl _strcoll_l(char const *_String1, char const *_String2, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strcpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strcpy(char *_Destination, char const *_Source);size_t __cdecl strcspn(char const *_Str, char const *_Control);__declspec(allocator) char *__cdecl _strdup(char const *_Source);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strerror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strerror(char const *_ErrorMessage);errno_t __cdecl _strerror_s(char *_Buffer, size_t _SizeInBytes, char const *_ErrorMessage);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strerror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strerror(int _ErrorMessage);int __cdecl _stricmp(char const *_String1, char const *_String2);int __cdecl _stricoll(char const *_String1, char const *_String2);int __cdecl _stricoll_l(char const *_String1, char const *_String2, _locale_t _Locale);int __cdecl _stricmp_l(char const *_String1, char const *_String2, _locale_t _Locale);size_t __cdecl strlen(char const *_Str);errno_t __cdecl _strlwr_s(char *_String, size_t _Size);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strlwr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strlwr(char *_String);errno_t __cdecl _strlwr_s_l(char *_String, size_t _Size, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strlwr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strlwr_l(char *_String, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strncat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strncat(char *_Destination, char const *_Source, size_t _Count);int __cdecl strncmp(char const *_Str1, char const *_Str2, size_t _MaxCount);int __cdecl _strnicmp(char const *_String1, char const *_String2, size_t _MaxCount);int __cdecl _strnicmp_l(char const *_String1, char const *_String2, size_t _MaxCount, _locale_t _Locale);int __cdecl _strnicoll(char const *_String1, char const *_String2, size_t _MaxCount);int __cdecl _strnicoll_l(char const *_String1, char const *_String2, size_t _MaxCount, _locale_t _Locale);int __cdecl _strncoll(char const *_String1, char const *_String2, size_t _MaxCount);int __cdecl _strncoll_l(char const *_String1, char const *_String2, size_t _MaxCount, _locale_t _Locale);size_t __cdecl __strncnt(char const *_String, size_t _Count);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strncpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strncpy(char *_Destination, char const *_Source, size_t _Count);size_t __cdecl strnlen(char const *_String, size_t _MaxCount);static __inline size_t __cdecl strnlen_s(char const *_String, size_t _MaxCount) { return _String==0 ? 0 :strnlen(_String, _MaxCount);} errno_t __cdecl _strnset_s(char *_String, size_t _SizeInBytes, int _Value, size_t _MaxCount);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strnset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strnset(char *_Destination, int _Value, size_t _Count);char *__cdecl strpbrk(char const *_Str, char const *_Control);char *__cdecl _strrev(char *_Str);errno_t __cdecl _strset_s(char *_Destination, size_t _DestinationSize, int _Value);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strset(char *_Destination, int _Value);size_t __cdecl strspn(char const *_Str, char const *_Control);__declspec(deprecated("This function or variable may be unsafe. Consider using " "strtok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl strtok(char *_String, char const *_Delimiter);errno_t __cdecl _strupr_s(char *_String, size_t _Size);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strupr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strupr(char *_String);errno_t __cdecl _strupr_s_l(char *_String, size_t _Size, _locale_t _Locale);__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strupr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char *__cdecl _strupr_l(char *_String, _locale_t _Locale);size_t __cdecl strxfrm(char *_Destination, char const *_Source, size_t _MaxCount);size_t __cdecl _strxfrm_l(char *_Destination, char const *_Source, size_t _MaxCount, _locale_t _Locale);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strdup" ". See online help for details.")) char *__cdecl strdup(char const *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strcmpi" ". See online help for details.")) int __cdecl strcmpi(char const *_String1, char const *_String2);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_stricmp" ". See online help for details.")) int __cdecl stricmp(char const *_String1, char const *_String2);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strlwr" ". See online help for details.")) char *__cdecl strlwr(char *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strnicmp" ". See online help for details.")) int __cdecl strnicmp(char const *_String1, char const *_String2, size_t _MaxCount);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strnset" ". See online help for details.")) char *__cdecl strnset(char *_String, int _Value, size_t _MaxCount);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strrev" ". See online help for details.")) char *__cdecl strrev(char *_String);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strset" ". See online help for details.")) char *__cdecl strset(char *_String, int _Value);__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strupr" ". See online help for details.")) char *__cdecl strupr(char *_String);__pragma(pack(pop))#pragma warning(pop) #pragma once#pragma warning(push)#pragma warning(disable:4514 4820) __pragma(pack(push, 8)) __pragma(pack(pop))#pragma warning(pop) #pragma once#pragma warning(push)#pragma warning(disable:4324 4514 4574 4710 4793 4820 4995 4996 28719 28726 28727) typedef unsigned short _ino_t;typedef _ino_t ino_t;#line 24 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\sys/types.h" typedef unsigned int _dev_t;typedef _dev_t dev_t;#line 36 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\sys/types.h" typedef long _off_t;typedef _off_t off_t;#line 48 "C:/Program Files (x86)/Windows Kits/10/include/10.0.19041.0/ucrt\\sys/types.h"#pragma warning(pop) typedef char *sds;#pragma pack(push, 1) struct sdshdr5 { unsigned char flags;char buf[];};struct sdshdr8 { uint8_t len;uint8_t alloc;unsigned char flags;char buf[];};struct sdshdr16 { uint16_t len;uint16_t alloc;unsigned char flags;char buf[];};struct sdshdr32 { uint32_t len;uint32_t alloc;unsigned char flags;char buf[];};struct sdshdr64 { uint64_t len;uint64_t alloc;unsigned char flags;char buf[];};#pragma pack(pop) static inline size_t sdslen(const sds s) { unsigned char flags=s[-1];switch(flags &7) { case 0 :return((flags) >> 3) ;case 1 :return((struct sdshdr8 *)((s) -(sizeof(struct sdshdr8)))) ->len;case 2 :return((struct sdshdr16 *)((s) -(sizeof(struct sdshdr16)))) ->len;case 3 :return((struct sdshdr32 *)((s) -(sizeof(struct sdshdr32)))) ->len;case 4 :return((struct sdshdr64 *)((s) -(sizeof(struct sdshdr64)))) ->len;} return 0;}static inline size_t sdsavail(const sds s) { unsigned char flags=s[-1];switch(flags &7) { case 0 :{ return 0;} case 1 :{ struct sdshdr8 *sh=(void *)((s) -(sizeof(struct sdshdr8)));;return sh->alloc - sh->len;} case 2 :{ struct sdshdr16 *sh=(void *)((s) -(sizeof(struct sdshdr16)));;return sh->alloc - sh->len;} case 3 :{ struct sdshdr32 *sh=(void *)((s) -(sizeof(struct sdshdr32)));;return sh->alloc - sh->len;} case 4 :{ struct sdshdr64 *sh=(void *)((s) -(sizeof(struct sdshdr64)));;return sh->alloc - sh->len;} } return 0;}static inline void sdssetlen(sds s, size_t newlen) { unsigned char flags=s[-1];switch(flags &7) { case 0 :{ unsigned char *fp=((unsigned char *) s) - 1;*fp=0|(newlen<< 3);} break;case 1 :((struct sdshdr8 *)((s) -(sizeof(struct sdshdr8)))) ->len=(uint8_t) newlen;break;case 2 :((struct sdshdr16 *)((s) -(sizeof(struct sdshdr16)))) ->len=(uint16_t) newlen;break;case 3 :((struct sdshdr32 *)((s) -(sizeof(struct sdshdr32)))) -> len
Definition: CPAL.d:15583
int level
Definition: afm2pl.c:1694
#define name
#define n
Definition: t4ht.c:1290
#define free(a)
Definition: decNumber.cpp:310
#define strrchr
Definition: detex.c:67
#define fopen
Definition: xxstdio.h:21
#define fread
Definition: xxstdio.h:25
char * strncpy()
int strcmp()
Definition: coll.cpp:143
int sptr
Definition: dvistuff.c:186
const FcChar8 lang[6]
Definition: fcfreetype.c:56
#define memcmp(s1, s2, n)
Definition: gsftopk.c:66
@ COMPOSITE
Definition: glyf.h:9
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p
Definition: afcover.h:72
small capitals from c petite p scientific i
Definition: afcover.h:80
void exit()
kerning y
Definition: ttdriver.c:212
#define WE_HAVE_A_SCALE
Definition: ttgload.c:73
#define MORE_COMPONENTS
Definition: ttgload.c:75
#define ARGS_ARE_XY_VALUES
Definition: ttgload.c:71
unsigned short platform
Definition: cidtype2.c:153
signed short SHORT
Definition: sfnt.h:37
unsigned char BYTE
Definition: sfnt.h:34
unsigned short USHORT
Definition: sfnt.h:36
#define WE_HAVE_AN_X_AND_Y_SCALE
Definition: tt_glyf.c:194
#define WE_HAVE_A_TWO_BY_TWO
Definition: tt_glyf.c:195
#define ARG_1_AND_2_ARE_WORDS
Definition: tt_glyf.c:188
#define fclose
Definition: debug.h:100
@ kpse_truetype_format
Definition: types.h:139
static const char * tab[]
Definition: xdirtest.c:23
#define fputs
Definition: mendex.h:67
#define fprintf
Definition: mendex.h:64
#define FWORD
Definition: ttf.h:15
#define REPEAT
Definition: ttf.h:21
#define YSAME
Definition: ttf.h:23
#define ONOROFF
Definition: ttf.h:18
struct ttf_glyf TTF_GLYF
#define XSHORT
Definition: ttf.h:19
#define YSHORT
Definition: ttf.h:20
#define XSAME
Definition: ttf.h:22
#define fabs(x)
Definition: cpascal.h:211
#define malloc
Definition: alloca.c:91
int stat(const char *path, struct stat *sbuf)
int strncmp()
#define sprintf
Definition: snprintf.c:44
#define isdigit(c)
Definition: snprintf.c:177
float x
Definition: cordic.py:15
dictionary ce
int k
Definition: otp-parser.c:70
static int format
Definition: pbmclean.c:15
#define max(a, b)
Definition: pbmto4425.c:11
static int delta
Definition: pbmtolj.c:36
unsigned long ULONG
Definition: pdfgen.h:158
float ** matrix()
set set set set set set set set set set set set set set set set set set set set *set set set macro pixldst op &r &cond WK op &r &cond WK op &r &cond WK else op &m &cond &ia op &r &cond WK else op &m &cond &ia elseif elseif else error unsupported base if elseif elseif else error unsupported unaligned pixldst unaligned endm macro pixst base base else pixldst base endif endm macro PF ptr
#define k1
static integer flagbyte
Definition: pktopbm.c:29
char * fname
Definition: plain2.c:121
real to[600]
Definition: pmxab.c:87
static int32_t first
Definition: ppagelist.c:29
static struct colourSystem * cs
Definition: ppmcie.c:241
static int size
Definition: ppmlabel.c:24
int g
Definition: ppmqvga.c:68
static int offset
Definition: ppmtogif.c:642
void assertpath(GENTRY *from, char *file, int line, char *name)
Definition: pt1.c:283
void fg_rlineto(GLYPH *g, double x, double y)
Definition: pt1.c:484
void fg_rrcurveto(GLYPH *g, double x1, double y1, double x2, double y2, double x3, double y3)
Definition: pt1.c:574
void reversepaths(GLYPH *g)
Definition: pt1.c:7133
void reversepathsfromto(GENTRY *from, GENTRY *to)
Definition: pt1.c:7055
void addkernpair(unsigned id1, unsigned id2, int unscval)
Definition: pt1.c:7143
void fg_rmoveto(GLYPH *g, double x, double y)
Definition: pt1.c:394
void g_closepath(GLYPH *g)
Definition: pt1.c:699
GLYPH * glyph_list
Definition: pt1.c:120
#define flags
#define arg1(arg)
#define islower(ch)
Definition: utype.h:79
#define isalpha(ch)
Definition: utype.h:82
#define isalnum(ch)
Definition: utype.h:84
table_type tables[100]
Definition: routines.c:49
#define str(s)
Definition: sh6.c:399
Definition: ttf2afm.c:72
TTF_FWORD value
Definition: ttf2afm.c:73
Definition: pst1form.c:310
Definition: dir.c:365
char * name_family
Definition: global.h:141
short is_fixed_pitch
Definition: global.h:129
char * name_style
Definition: global.h:142
unsigned short units_per_em
Definition: global.h:136
char * name_full
Definition: global.h:143
short underline_thickness
Definition: global.h:128
int force_bold
Definition: global.h:148
short bbox[4]
Definition: global.h:137
double italic_angle
Definition: global.h:126
char * name_version
Definition: global.h:144
short descender
Definition: global.h:133
short ascender
Definition: global.h:132
short underline_position
Definition: global.h:127
char * name_copyright
Definition: global.h:140
char * name_ps
Definition: global.h:145
Definition: pt1.h:7
struct gentry * next
Definition: pt1.h:9
Definition: pbmfont.h:4
int orig_code
Definition: pt1.h:150
int char_no
Definition: pt1.h:149
char * name
Definition: pt1.h:151
signed short lsb
Definition: ttf.h:42
unsigned short advanceWidth
Definition: ttf.h:41
unsigned short lower
Definition: ttf.h:37
signed short upper
Definition: ttf.h:36
Definition: ttf.h:133
unsigned short platformID
Definition: ttf.h:134
unsigned int offset
Definition: ttf.h:136
unsigned short encodingID
Definition: ttf.h:135
unsigned short format
Definition: ttf.h:117
unsigned short length
Definition: ttf.h:118
unsigned char glyphIdArray[256]
Definition: ttf.h:120
unsigned short segCountX2
Definition: ttf.h:127
unsigned short format
Definition: ttf.h:124
Definition: ttf.h:139
TTF_CMAP_ENTRY encodingTable[1]
Definition: ttf.h:142
unsigned short numberOfEncodingTables
Definition: ttf.h:141
Definition: ttf.h:56
char tag[4]
Definition: ttf.h:57
unsigned int offset
Definition: ttf.h:59
Definition: ttf.h:145
signed short xMax
Definition: ttf.h:147
signed short yMin
Definition: ttf.h:147
signed short yMax
Definition: ttf.h:147
signed short xMin
Definition: ttf.h:147
signed short numberOfContours
Definition: ttf.h:146
Definition: ttf.h:88
signed short xMin
Definition: ttf.h:97
unsigned short unitsPerEm
Definition: ttf.h:94
signed short xMax
Definition: ttf.h:97
signed short indexToLocFormat
Definition: ttf.h:99
signed short yMax
Definition: ttf.h:97
signed short yMin
Definition: ttf.h:97
Definition: ttf.h:45
signed short ascender
Definition: ttf.h:47
unsigned short numberOfHMetrics
Definition: ttf.h:53
signed short descender
Definition: ttf.h:47
Definition: ttf.h:111
unsigned short coverage
Definition: ttf.h:107
unsigned short length
Definition: ttf.h:107
unsigned short nPairs
Definition: ttf.h:108
Definition: ttf.h:102
unsigned short nTables
Definition: ttf.h:103
Definition: ttf.h:150
unsigned short numGlyphs
Definition: ttf.h:152
Definition: ttf.h:81
TTF_NAME_REC nameRecords
Definition: ttf.h:85
unsigned short numberOfNameRecords
Definition: ttf.h:83
unsigned short offset
Definition: ttf.h:84
Definition: ttf.h:160
unsigned int isFixedPitch
Definition: ttf.h:165
unsigned short glyphNameIndex
Definition: ttf.h:171
signed short underlinePosition
Definition: ttf.h:163
unsigned short numGlyphs
Definition: ttf.h:170
__FIXED italicAngle
Definition: ttf.h:162
signed short underlineThickness
Definition: ttf.h:164
unsigned int formatType
Definition: ttf.h:161
#define FILE
Definition: t1stdio.h:34
int j
Definition: t4ht.c:1589
*job_name strlen((char *) job_name) - 4)
found
Definition: tex4ht.c:5000
return() int(((double) *(font_tbl[cur_fnt].wtbl+(int)(*(font_tbl[cur_fnt].char_wi+(int)(ch - font_tbl[cur_fnt].char_f)% 256)))/(double)(1L<< 20)) *(double) font_tbl[cur_fnt].scale)
struct _kern_entry kern_entry
enum enc_type_ enc_type
#define WARNING_2
Definition: global.h:47
#define WARNING_3
Definition: global.h:48
int unicode_rev_lookup(int unival)
Definition: ttf2pt1.c:1129
int force_pid
Definition: ttf2pt1.c:145
#define ISDBG(name)
Definition: global.h:93
#define ENCTABSZ
Definition: global.h:153
double fscale(double val)
Definition: ttf2pt1.c:1195
int forcemap
Definition: ttf2pt1.c:123
int warnlevel
Definition: ttf2pt1.c:122
int force_eid
Definition: ttf2pt1.c:146
#define WARNING_1
Definition: global.h:46
char * dupcnstring(unsigned char *s, int len)
Definition: ttf2pt1.c:1514
static int badpointer(void *ptr)
Definition: ttf.c:788
static void draw_simple_glyf(GLYPH *g, GLYPH *glyph_list, int glyphno, double *matrix)
Definition: ttf.c:458
#define MAX_COMPOSITE_LEVEL
Definition: ttf.c:294
static TTF_DIRECTORY * directory
Definition: ttf.c:67
static void kerning(GLYPH *glyph_list)
Definition: ttf.c:1472
static int ttf_nglyphs
Definition: ttf.c:65
static unsigned char * glyf_start
Definition: ttf.c:79
unsigned short * sp
Definition: ttf.c:83
static TTF_MAXP * maxp_table
Definition: ttf.c:80
static char * mac_glyph_names[258]
Definition: ttf.c:99
static TTF_NAME * name_table
Definition: ttf.c:71
static void get_glyf_table(int glyphno, TTF_GLYF **tab, int *len)
Definition: ttf.c:177
static void openfont(char *fname, char *arg)
Definition: ttf.c:806
#define long_loca_table
Definition: ttf.c:87
static void handle_ms_encoding(GLYPH *glyph_list, int *encoding, int *unimap)
Definition: ttf.c:1111
static void draw_composite_glyf(GLYPH *g, GLYPH *glyph_list, int glyphno, double *matrix, int level)
Definition: ttf.c:297
static short cmap_n_segs
Definition: ttf.c:89
static TTF_HEAD * head_table
Definition: ttf.c:73
unsigned int * lp
Definition: ttf.c:84
static FILE * ttf_file
Definition: ttf.c:64
static char * filebuffer
Definition: ttf.c:69
struct frontsw ttf_sw
Definition: ttf.c:47
static void handle_head(void)
Definition: ttf.c:284
static int enc_found_mac
Definition: ttf.c:97
static TTF_CMAP * cmap_table
Definition: ttf.c:76
static union @198 loca_table
static void glmetrics(GLYPH *glyph_list)
Definition: ttf.c:1071
static char * filebuffer_end
Definition: ttf.c:70
static char * name_fields[8]
Definition: ttf.c:95
static void closefont(void)
Definition: ttf.c:926
static TTF_DIR_ENTRY * dir_entry
Definition: ttf.c:68
static short * cmap_idRangeOffset
Definition: ttf.c:91
static TTF_CMAP_FMT0 * encoding0
Definition: ttf.c:92
#define GLYFSZ
static int long_offsets
Definition: ttf.c:65
static int getnglyphs(void)
Definition: ttf.c:938
static TTF_KERN * kern_table
Definition: ttf.c:75
static double f2dot14(short x)
Definition: ttf.c:776
static int enc_type
Definition: ttf.c:93
static TTF_NAME_REC * name_record
Definition: ttf.c:72
#define short_loca_table
Definition: ttf.c:86
static int enc_found_ms
Definition: ttf.c:97
static TTF_GLYF * glyf_table
Definition: ttf.c:78
static void glpath(int glyphno, GLYPH *glyph_list)
Definition: ttf.c:1452
static TTF_HHEA * hhea_table
Definition: ttf.c:74
static short * cmap_idDelta
Definition: ttf.c:91
static void handle_mac_encoding(GLYPH *glyph_list, int *encoding, int *unimap)
Definition: ttf.c:1202
static void handle_name(void)
Definition: ttf.c:200
static unsigned short * cmap_seg_end
Definition: ttf.c:90
static LONGHORMETRIC * hmtx_table
Definition: ttf.c:77
static int glnames(GLYPH *glyph_list)
Definition: ttf.c:952
static unsigned short * cmap_seg_start
Definition: ttf.c:90
static void fnmetrics(struct font_metrics *fm)
Definition: ttf.c:1395
static int glenc(GLYPH *glyph_list, int *encoding, int *unimap)
Definition: ttf.c:1238
static TTF_POST_HEAD * post_table
Definition: ttf.c:81
static int ps_fmt_3
Definition: ttf2pt1.c:169
@ start
Definition: preamble.c:52
unsigned long ntohl(unsigned long inv)
unsigned short ntohs(unsigned short inv)
#define end(cp)
Definition: zic.c:71