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)  

t1_char.c
Go to the documentation of this file.
1 /* This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks.
2 
3  Copyright (C) 2002-2020 by Jin-Hwan Cho and Shunsaku Hirata,
4  the dvipdfmx project team.
5 
6  Copyright (C) 1998, 1999 by Mark A. Wicks <mwicks@kettering.edu>
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
21 */
22 
23 #ifdef HAVE_CONFIG_H
24 #include <config.h>
25 #endif
26 
27 #include <string.h>
28 #include <math.h>
29 
30 #include "system.h"
31 #include "mem.h"
32 #include "error.h"
33 #include "numbers.h"
34 
35 #include "pdfobj.h"
36 #include "pdffont.h"
37 
38 #include "pdfencoding.h"
39 #include "unicode.h"
40 
41 #include "dpxutil.h"
42 
43 #include "pst_obj.h"
44 #include "pst.h"
45 
46 #include "cff_limits.h"
47 #include "cff_types.h"
48 #include "cff_dict.h"
49 #include "cff.h"
50 
51 #include "t1_char.h"
52 
53 /*
54  * Type 1 -> Type 1C
55  */
56 
57 /* Charstring decoder/encoder status codes */
58 #define CS_OP_NOSUPPORT -4
59 #define CS_BUFFER_ERROR -3
60 #define CS_STACK_ERROR -2
61 #define CS_PARSE_ERROR -1
62 #define CS_PARSE_OK 0
63 #define CS_PARSE_END 1
64 #define CS_SUBR_RETURN 2
65 #define CS_CHAR_END 3
66 
67 static int status = CS_PARSE_ERROR;
68 
69 #define DST_NEED(a,b) {if ((a) < (b)) { status = CS_BUFFER_ERROR ; return ; }}
70 #define SRC_NEED(a,b) {if ((a) < (b)) { status = CS_PARSE_ERROR ; return ; }}
71 #define NEED(a,b) {if ((a) < (b)) { status = CS_STACK_ERROR ; return ; }}
72 
73 #define T1_CS_PHASE_INIT 0
74 #define T1_CS_PHASE_HINT 1
75 #define T1_CS_PHASE_PATH 2
76 #define T1_CS_PHASE_FLEX 3
77 
78 static int phase = -1;
79 static int nest = -1;
80 
81 #ifndef CS_STEM_ZONE_MAX
82 #define CS_STEM_ZONE_MAX 96
83 #endif
84 #ifndef CS_STEM_GROUP_MAX
85 #define CS_STEM_GROUP_MAX CS_STEM_ZONE_MAX
86 #endif
87 #ifndef CS_ARG_STACK_MAX
88 #define CS_ARG_STACK_MAX 48
89 #endif
90 #ifndef PS_ARG_STACK_MAX
91 /*
92  * Counter control may have CS_STEM_ZONE_MAX*2+2 arguments.
93  */
94 #define PS_ARG_STACK_MAX (CS_STEM_ZONE_MAX*2+2)
95 #endif
96 
97 typedef struct t1_cpath {
98  int type;
99  int num_args;
100  double args[CS_ARG_STACK_MAX];
101  struct t1_cpath *next;
103 
104 #define HSTEM 0
105 #define VSTEM 1
106 typedef struct {
107  int id;
108  int dir;
109  double pos, del;
110 } t1_stem;
111 
112 typedef struct {
113  int num_stems;
114  double stems[CS_STEM_ZONE_MAX]; /* int */
115 } t1_stemgroup;
116 
117 #define T1_CS_FLAG_NONE 0
118 #define T1_CS_FLAG_USE_HINTMASK (1 << 0)
119 #define T1_CS_FLAG_USE_CNTRMASK (1 << 1)
120 #define T1_CS_FLAG_USE_SEAC (1 << 2)
121 
122 typedef struct {
123  int flags;
124  struct {
125  double sbx, sby, wx, wy;
126  } sbw;
127  struct {
128  double llx, lly, urx, ury;
129  } bbox;
130  struct {
131  double asb, adx, ady;
132  card8 bchar, achar;
133  } seac;
134  int num_stems;
136  t1_cpath *charpath;
137  t1_cpath *lastpath;
138 } t1_chardesc;
139 
140 static int cs_stack_top = 0;
141 static int ps_stack_top = 0;
142 
143 /* [vh]stem support require one more stack size. */
146 
147 #define CS_HINT_DECL -1
148 #define CS_FLEX_CTRL -2
149 #define CS_CNTR_CTRL -3
150 
151 /*
152  * Type 1/2 CharString encoding
153  */
154 
155 /*
156  * 1-byte CharString operaotrs:
157  * cs_escape is first byte of two-byte operator
158  */
159 
160 /* RESERVED 0 */
161 #define cs_hstem 1
162 /* RESERVED 2 */
163 #define cs_vstem 3
164 #define cs_vmoveto 4
165 #define cs_rlineto 5
166 #define cs_hlineto 6
167 #define cs_vlineto 7
168 #define cs_rrcurveto 8
169 #define cs_closepath 9
170 #define cs_callsubr 10
171 #define cs_return 11
172 #define cs_escape 12
173 #define cs_hsbw 13
174 #define cs_endchar 14
175 /* RESERVED 15 */
176 /* RESERVED 16 */
177 /* RESERVED 17 */
178 #define cs_hstemhm 18
179 #define cs_hintmask 19
180 #define cs_cntrmask 20
181 #define cs_rmoveto 21
182 #define cs_hmoveto 22
183 #define cs_vstemhm 23
184 #define cs_rcurveline 24
185 #define cs_rlinecurve 25
186 #define cs_vvcurveto 26
187 #define cs_hhcurveto 27
188 /* SHORTINT 28 : first byte of shortint*/
189 #define cs_callgsubr 29
190 #define cs_vhcurveto 30
191 #define cs_hvcurveto 31
192 
193 /* 2-byte op. flex 34-37 used. */
194 
195 /*
196  * 2-byte CharString operaotrs:
197  * "dotsection" is obsoleted in Type 2 charstring.
198  */
199 
200 #define cs_dotsection 0
201 #define cs_vstem3 1
202 #define cs_hstem3 2
203 #define cs_and 3
204 #define cs_or 4
205 #define cs_not 5
206 #define cs_seac 6
207 #define cs_sbw 7
208 /* RESERVED 8 */
209 #define cs_abs 9
210 #define cs_add 10
211 #define cs_sub 11
212 #define cs_div 12
213 /* RESERVED 13 */
214 #define cs_neg 14
215 #define cs_eq 15
216 #define cs_callothersubr 16
217 #define cs_pop 17
218 #define cs_drop 18
219 /* RESERVED 19 */
220 #define cs_put 20
221 #define cs_get 21
222 #define cs_ifelse 22
223 #define cs_random 23
224 #define cs_mul 24
225 /* RESERVED 25 */
226 #define cs_sqrt 26
227 #define cs_dup 27
228 #define cs_exch 28
229 #define cs_index 29
230 #define cs_roll 30
231 /* RESERVED 31 */
232 /* RESERVED 32 */
233 #define cs_setcurrentpoint 33
234 #define cs_hflex 34
235 #define cs_flex 35
236 #define cs_hflex1 36
237 #define cs_flex1 37
238 
239 #define IS_PATH_OPERATOR(o) (((o) >= cs_vmoveto && (o) <= cs_closepath) || \
240  ((o) >= cs_rmoveto && (o) <= cs_hvcurveto && \
241  (o) != cs_vstemhm && (o) != cs_callgsubr && (o) != 28)\
242  )
243 
244 /*
245  * Stem:
246  *
247  * 1. Stems must be sorted in the increasing bottom/left edge order.
248  * 2. The encoded values are all relative; The value x(y) of the first
249  * stem is relative to 0 for Type 2 charstring and is relative to
250  * the left(bottom) side-bearing for Type 1 charstring.
251  * 3. A width of -20(-21) specifies the top/right(bottom/left) edge
252  * of an edge hint in Type 2 charstring. But the width of 'ghost'
253  * hint in Type 1 charstring is positive with value 20 or 21.
254  * 4. The h(v)stemhm MUST be used instead of h(v)stem if charstring
255  * contains hintmask operator.
256  *
257  * TODO:
258  *
259  * Convert ghost hint to edge hint, Counter control for hstem3/vstem3.
260  */
261 
262 static inline int
263 stem_compare (const void *v1, const void *v2)
264 {
265  int cmp = 0;
266  const t1_stem *s1, *s2;
267 
268  s1 = (const t1_stem *) v1;
269  s2 = (const t1_stem *) v2;
270  if (s1->dir == s2->dir) {
271  if (s1->pos == s2->pos) {
272  if (s1->del == s2->del)
273  cmp = 0;
274  else
275  cmp = (s1->del < s2->del) ? -1 : 1;
276  } else {
277  cmp = (s1->pos < s2->pos) ? -1 : 1;
278  }
279  } else {
280  cmp = (s1->dir == HSTEM) ? -1 : 1;
281  }
282 
283  return cmp;
284 }
285 
286 #define SORT_STEMS(cd) qsort((cd)->stems,(cd)->num_stems,sizeof(t1_stem),stem_compare)
287 
288 static int
289 get_stem (t1_chardesc *cd, int stem_id)
290 {
291  int i;
292 
293  for (i = 0; i < cd->num_stems; i++) {
294  if (cd->stems[i].id == stem_id)
295  break;
296  }
297 
298  return ((i < cd->num_stems) ? i : -1);
299 }
300 
301 static int
302 add_stem (t1_chardesc *cd, double pos, double del, int dir)
303 {
304  int i;
305 
306  ASSERT(cd);
307 
308  pos += (dir == HSTEM) ? cd->sbw.sby : cd->sbw.sbx;
309  for (i = 0; i < cd->num_stems; i++) {
310  if (cd->stems[i].dir == dir &&
311  cd->stems[i].pos == pos &&
312  cd->stems[i].del == del)
313  break;
314  }
315  if (i == cd->num_stems) {
316  if (cd->num_stems == CS_STEM_ZONE_MAX)
317  return -1;
318  cd->stems[i].dir = dir;
319  cd->stems[i].pos = pos;
320  cd->stems[i].del = del;
321  cd->stems[i].id = cd->num_stems;
322  (cd->num_stems)++;
323  }
324 
325  return cd->stems[i].id;
326 }
327 
328 
329 static void
330 copy_args (double *args1, double *args2, int count)
331 {
332  while (count-- > 0) {
333  *args1 = *args2;
334  args1++; args2++;
335  }
336 }
337 
338 /*
339  * Stack:
340  */
341 #define LIMITCHECK(n) do {\
342  if (cs_stack_top+(n) > CS_ARG_STACK_MAX) {\
343  status = CS_STACK_ERROR;\
344  return;\
345  }\
346  } while (0)
347 #define CHECKSTACK(n) do {\
348  if (cs_stack_top < (n)) {\
349  status = CS_STACK_ERROR;\
350  return;\
351  }\
352  } while (0)
353 #define CLEARSTACK() do {\
354  cs_stack_top = 0;\
355  } while (0)
356 
357 /*
358  * Path construction:
359  */
360 /* Get operands from cs_arg_stack[] */
361 static void
362 add_charpath (t1_chardesc *cd, int type, double *argv, int argn)
363 {
364  t1_cpath *p;
365 
366  ASSERT(cd);
368 
369  p = NEW(1, t1_cpath);
370  p->type = type;
371  p->num_args = argn;
372  p->next = NULL;
373 
374  while (argn-- > 0)
375  p->args[argn] = argv[argn];
376 
377  if (!cd->charpath)
378  cd->charpath = p;
379  if (cd->lastpath)
380  cd->lastpath->next = p;
381  cd->lastpath = p;
382 
383  if (type >= 0 &&
386 }
387 
388 static void
390 {
391  cd->flags = T1_CS_FLAG_NONE;
392  cd->num_stems = 0;
393  cd->sbw.wx = cd->sbw.wy = 0.0;
394  cd->sbw.sbx = cd->sbw.sby = 0.0;
395  cd->bbox.llx = cd->bbox.lly = cd->bbox.urx = cd->bbox.ury = 0.0;
396  cd->charpath = cd->lastpath = NULL;
397 }
398 
399 static void
401 {
402  t1_cpath *curr, *next;
403 
404  ASSERT(cd);
405 
406  curr = cd->charpath;
407  while (curr != NULL) {
408  next = curr->next;
409  RELEASE(curr);
410  curr = next;
411  }
412 
413  cd->charpath = cd->lastpath = NULL;
414 }
415 
416 /*
417  * Type 1 charstring operators:
418  */
419 #define ADD_PATH(p,t,n) add_charpath((p),(t),&(cs_arg_stack[cs_stack_top-(n)]),(n))
420 
421 /*
422  * Single byte operators:
423  */
424 static void
426 {
427  card8 op = **data;
428 
429  *data += 1;
430 
431  switch (op) {
432  case cs_closepath:
433  /*
434  * From T1 spec.:
435  * Note that, unlike the closepath command in the PostScript language,
436  * this command does not reposition the current point. Any subsequent
437  * rmoveto must be relative to the current point in force before the
438  * Type 1 font format closepath command was given.
439  */
440  /* noop */
441  CLEARSTACK();
442  break;
443  case cs_hsbw:
444  CHECKSTACK(2);
445  cd->sbw.wx = cs_arg_stack[--cs_stack_top];
446  cd->sbw.wy = 0;
447  cd->sbw.sbx = cs_arg_stack[--cs_stack_top];
448  cd->sbw.sby = 0;
449  CLEARSTACK();
450  /* hsbw does NOT set currentpoint. */
451  break;
452  case cs_hstem:
453  case cs_vstem:
454  CHECKSTACK(2);
455  {
456  int stem_id;
457  stem_id = add_stem(cd,
460  ((op == cs_hstem) ? HSTEM : VSTEM));
461  if (stem_id < 0) {
462  WARN("Too many hints...");
464  return;
465  }
466  /* Put stem_id onto the stack... */
467  cs_arg_stack[cs_stack_top++] = stem_id;
468  ADD_PATH(cd, CS_HINT_DECL, 1);
469  }
470  CLEARSTACK();
471  break;
472  case cs_rmoveto:
473  /*
474  * Reference point is (0, 0) in Type 2 charstring.
475  */
476  CHECKSTACK(2);
477  {
478  if (phase < T1_CS_PHASE_PATH) {
479  cs_arg_stack[cs_stack_top-2] += cd->sbw.sbx;
480  cs_arg_stack[cs_stack_top-1] += cd->sbw.sby;
481  }
482  ADD_PATH(cd, op, 2);
483  }
484  CLEARSTACK();
485  break;
486  case cs_hmoveto:
487  case cs_vmoveto:
488  CHECKSTACK(1);
489  {
490  int argn = 1;
491  if (phase < T1_CS_PHASE_PATH) {
492  /*
493  * The reference point for the first moveto operator is diferrent
494  * between Type 1 charstring and Type 2 charstring. We compensate it.
495  */
496  if (op == cs_hmoveto) {
497  cs_arg_stack[cs_stack_top-1] += cd->sbw.sbx;
498  if (cd->sbw.sby != 0.0) {
499  cs_arg_stack[cs_stack_top++] = cd->sbw.sby;
500  argn = 2;
501  op = cs_rmoveto;
502  }
503  } else {
504  cs_arg_stack[cs_stack_top-1] += cd->sbw.sby;
505  if (cd->sbw.sbx != 0.0) {
507  cs_arg_stack[cs_stack_top-1] = cd->sbw.sbx;
508  cs_stack_top++;
509  argn = 2;
510  op = cs_rmoveto;
511  }
512  }
513  }
514  ADD_PATH(cd, op, argn);
515  }
516  CLEARSTACK();
517  break;
518  case cs_endchar:
520  CLEARSTACK();
521  break;
522  /* above oprators are candidate for first stack-clearing operator */
523  case cs_rlineto:
524  CHECKSTACK(2);
525  ADD_PATH(cd, op, 2);
526  CLEARSTACK();
527  break;
528  case cs_hlineto:
529  case cs_vlineto:
530  CHECKSTACK(1);
531  ADD_PATH(cd, op, 1);
532  CLEARSTACK();
533  break;
534  case cs_rrcurveto:
535  CHECKSTACK(6);
536  ADD_PATH(cd, op, 6);
537  CLEARSTACK();
538  break;
539  case cs_vhcurveto:
540  case cs_hvcurveto:
541  CHECKSTACK(4);
542  ADD_PATH(cd, op, 4);
543  CLEARSTACK();
544  break;
545  /* all operotors above are stack-clearing operator */
546  /* no output */
547  case cs_return:
548  break;
549  case cs_callsubr:
550  ERROR("Unexpected callsubr.");
551  break;
552  default:
553  /* no-op ? */
554  WARN("Unknown charstring operator: 0x%02x", op);
556  break;
557  }
558 
559  return;
560 }
561 
562 /*
563  * OtherSubrs:
564  *
565  * arg0 arg1 ... argn n othersubr# callothersubr
566  *
567  * 0: Build flex:
568  * fd x y 3 0 callothersubr
569  * Othersubr #0 pushes x and y to PostScript interpreter operand stack.
570  * 1: Start flex
571  * 0 1 callothersubr
572  * 2: Mark flex control points
573  * 0 2 callothersubr
574  * 3: Discard hint
575  * subr# 1 3 callothersubr pop callsubr
576  * Subroutine subr# (only) contains stem declaration.
577  * Othersubr #3 pushes subr# to PostScript interpreter operand stack.
578  * 12: Counter control
579  * A subr to avoid stack overflow.
580  * 13: Counter control
581  */
582 
583 /*
584  * Convert six control points marked as CS_FLEX_CTRL to a flex path.
585  */
586 static void
588 {
589  t1_cpath *flex, *cur, *next;
590 
591  if (ps_stack_top < 1) {
593  return;
594  }
595 
596  /* Seek first CS_FLEX_CTRL mark */
597  for (cur = cd->charpath; cur != NULL && cur->type != CS_FLEX_CTRL; cur = cur->next);
598  flex = cur;
599  {
600  int i;
601  cur = cur->next;
602  for (i = 1; i < 7; i++) {
603  if (cur == NULL || cur->type != CS_FLEX_CTRL ||
604  cur->num_args != 2) {
606  return;
607  }
608  if (i == 1) {
609  flex->args[0] += cur->args[0];
610  flex->args[1] += cur->args[1];
611  } else {
612  copy_args(&(flex->args[2*i-2]), cur->args, 2);
613  }
614  next = cur->next;
615  RELEASE(cur);
616  cur = next;
617  }
618  }
619  if (cur != NULL) {
621  return;
622  }
623  /*
624  * Now 'flex' have all six control points, the first pair is relative
625  * from starting point.
626  */
627  flex->type = cs_flex;
628  flex->args[12] = ps_arg_stack[--ps_stack_top]; /* flex depth */
629  flex->num_args = 13;
630  flex->next = NULL;
631  cd->lastpath = flex;
632 
634 }
635 
636 /* Start flex */
637 static void
639 {
641 }
642 
643 /* Mark flex control point */
644 static void
646 {
647  if (phase != T1_CS_PHASE_FLEX || !cd->lastpath) {
649  return;
650  }
651 
652  switch (cd->lastpath->type) {
653  case cs_rmoveto:
654  break;
655  case cs_hmoveto:
656  cd->lastpath->num_args = 2;
657  cd->lastpath->args[1] = 0.0;
658  break;
659  case cs_vmoveto:
660  cd->lastpath->num_args = 2;
661  cd->lastpath->args[1] = cd->lastpath->args[0];
662  cd->lastpath->args[0] = 0.0;
663  break;
664  default:
666  return;
667  }
668  cd->lastpath->type = CS_FLEX_CTRL;
669 }
670 
671 /*
672  * Hint Replacement:
673  * "Adobe Type 1 Font Format", Chapter 8.
674  */
675 static void
677 {
679 }
680 
681 static void
683 {
684  /* Othersubr12 call must immediately follow the hsbw or sbw. */
685  if (phase != T1_CS_PHASE_INIT) {
687  return;
688  }
689  /* noop */
690 }
691 
692 static void
694 {
695  t1_stemgroup stemgroups[CS_STEM_GROUP_MAX];
696  int num_hgroups, num_vgroups, n, stem_id;
697  double pos, del;
698 
699  /* After #12 callothersubr or hsbw or sbw. */
700  if (phase != T1_CS_PHASE_INIT) {
702  return;
703  }
704  for (n = 0; n < CS_STEM_GROUP_MAX; n++) {
705  stemgroups[n].num_stems = 0;
706  }
707 
708  num_hgroups = (int) ps_arg_stack[--ps_stack_top];
709  if (num_hgroups < 0 || num_hgroups > CS_STEM_GROUP_MAX) {
711  return;
712  }
713  n = 0; pos = 0.0;
714  while (ps_stack_top >= 2 && n < num_hgroups) {
715  /* add_stem() add sidebearing */
717  del = ps_arg_stack[--ps_stack_top];
718  stem_id = add_stem(cd,
719  (del < 0.0) ? pos + del : pos,
720  (del < 0.0) ? -del : del,
721  HSTEM);
722  stemgroups[n].stems[stemgroups[n].num_stems] = stem_id;
723  stemgroups[n].num_stems += 1;
724  pos += del;
725  if (del < 0.0) {
726  pos = 0.0;
727  n++;
728  }
729  }
730  if (n != num_hgroups) {
732  return;
733  }
734 
735  num_vgroups = (int) ps_arg_stack[--ps_stack_top];
736  if (num_vgroups < 0 || num_vgroups > CS_STEM_GROUP_MAX) {
738  return;
739  }
740  n = 0; pos = 0.0;
741  while (ps_stack_top >= 2 && n < num_vgroups) {
742  /* add_stem() add sidebearing */
744  del = ps_arg_stack[--ps_stack_top];
745  stem_id = add_stem(cd,
746  (del < 0.0) ? pos + del : pos,
747  (del < 0.0) ? -del : del,
748  VSTEM);
749  stemgroups[n].stems[stemgroups[n].num_stems] = stem_id;
750  stemgroups[n].num_stems += 1;
751  pos += del;
752  if (del < 0.0) {
753  pos = 0.0;
754  n++;
755  }
756  }
757  if (n != num_vgroups) {
759  return;
760  }
761 
762  for (n = 0; n < MAX(num_hgroups, num_vgroups); n++) {
764  stemgroups[n].stems, stemgroups[n].num_stems);
765  }
766 
768 }
769 
770 static void
772 {
773  int argn, subrno;
774 
775  CHECKSTACK(2);
776  subrno = (int) cs_arg_stack[--cs_stack_top];
778 
779  CHECKSTACK(argn);
782  return;
783  }
784  while (argn-- > 0)
786 
787  switch (subrno) {
788  case 0: do_othersubr0(cd) ; break;
789  case 1: do_othersubr1() ; break;
790  case 2: do_othersubr2(cd) ; break;
791  case 3: do_othersubr3(cd) ; break;
792  case 12: do_othersubr12() ; break;
793  case 13: do_othersubr13(cd); break;
794  default:
795  ERROR("Unknown othersubr #%ld.", subrno);
796  break;
797  }
798 }
799 
800 /*
801  * Double byte operators:
802  */
803 static void
805 {
806  card8 op;
807 
808  *data += 1;
809 
810  SRC_NEED(endptr, *data + 1);
811 
812  op = **data;
813  *data += 1;
814 
815  switch(op) {
816  case cs_sbw:
817  CHECKSTACK(4);
818  cd->sbw.wy = cs_arg_stack[--cs_stack_top];
819  cd->sbw.wx = cs_arg_stack[--cs_stack_top];
820  cd->sbw.sby = cs_arg_stack[--cs_stack_top];
821  cd->sbw.sbx = cs_arg_stack[--cs_stack_top];
822  CLEARSTACK();
823  break;
824  case cs_hstem3:
825  case cs_vstem3:
826  /*
827  * TODO:
828  * The counter control can be used for hstem3 and vstem3
829  * operator if LanguageGroup is not equal to 1.
830  */
831  CHECKSTACK(6);
832  {
833  int i;
834  for (i = 2; i >= 0; i--) {
835  int stem_id;
836  stem_id = add_stem(cd,
839  ((op == cs_hstem3) ? HSTEM : VSTEM));
840  if (stem_id < 0) {
841  WARN("Too many hints...");
843  return;
844  }
845  /* Put stem_id onto the stack... */
846  cs_arg_stack[cs_stack_top++] = stem_id;
847  ADD_PATH(cd, CS_HINT_DECL, 1);
848  cs_stack_top--;
849  }
850  }
851  CLEARSTACK();
852  break;
853  case cs_setcurrentpoint:
854  CHECKSTACK(2);
855  /* noop */
856  CLEARSTACK();
857  break;
858  /* all operator above are stack-clearing */
859  case cs_pop:
860  /*
861  * Transfer a operand from PS interpreter operand stack to BuildChar
862  * operand stack.
863  */
864  if (ps_stack_top < 1) {
866  return;
867  }
868  LIMITCHECK(1);
870  break;
871  case cs_dotsection:
872 #if 0
873  /*
874  * If the hint replacement feature is used in the font, the
875  * "dotsection" operator exist only for compatibility to older
876  * (more than 10 years old) Type 1 font rasterizer which can't
877  * perform hint replacement. In this case, we silently ignore
878  * the "dotsection" operator.
879  *
880  * The following code will wrongly warn about "dotsection" when
881  * the charstring only contains dot (e.g., "bullet") where the
882  * hint replacement is not necessary.
883  *
884  * Adobe ATM renderers always treat this operator as a no-op.
885  * (See, Adobe Technical Note #5177, Appendix C)
886  */
887  if (!(cd->flags & T1_CS_FLAG_USE_HINTMASK)) {
888  if (dpx_conf.verbose_level > 1)
889  WARN("Obsolete Type 1 charstring operator \"dotsection\" not supported.");
890  }
891 #endif
892  /* noop */
893  break;
894  case cs_div: /* TODO: check overflow */
895  CHECKSTACK(2);
897  cs_stack_top--;
898  break;
899  case cs_callothersubr:
900  do_callothersubr(cd);
901  break;
902  case cs_seac:
903  CHECKSTACK(5);
904  cd->flags |= T1_CS_FLAG_USE_SEAC;
909  /* We must compensate the difference of the glyph origin. */
910  cd->seac.ady += cd->sbw.sby;
911  cd->seac.adx += cd->sbw.sbx - cs_arg_stack[--cs_stack_top];
912  CLEARSTACK();
913  break;
914  default:
915  /* no-op ? */
916  WARN("Unknown charstring operator: 0x0c%02x", op);
918  break;
919  }
920 
921  return;
922 }
923 
924 /*
925  * Charstring encoding:
926  * Copied from cs_type2.c
927  * Note:
928  * The Type 2 interpretation of a number encoded in five-bytes (those with
929  * an initial byte value of 255) differs from how it is interpreted in the
930  * Type 1 format.
931  */
932 
933 /* Type 2 5-bytes encoding used. */
934 static void
935 put_numbers (double *argv, int argn, card8 **dest, card8 *limit)
936 {
937  int i;
938 
939  for (i = 0; i < argn; i++) {
940  double value;
941  int ivalue;
942  value = argv[i];
943  /* Nearest integer value */
944  ivalue = (int) floor(value+0.5);
945  if (value >= 0x8000L || value <= (-0x8000L - 1)) {
946  /*
947  * This number cannot be represented as a single operand.
948  * We must use `a b mul ...' or `a c div' to represent large values.
949  */
950  ERROR("Argument value too large. (This is bug)");
951  } else if (fabs(value - ivalue) > 3.0e-5) {
952  /* 16.16-bit signed fixed value */
953  DST_NEED(limit, *dest + 5);
954  *(*dest)++ = 255;
955  ivalue = (int) floor(value); /* mantissa */
956  *(*dest)++ = (ivalue >> 8) & 0xff;
957  *(*dest)++ = ivalue & 0xff;
958  ivalue = (int)((value - ivalue) * 0x10000l); /* fraction */
959  *(*dest)++ = (ivalue >> 8) & 0xff;
960  *(*dest)++ = ivalue & 0xff;
961  /* Everything else are integers. */
962  } else if (ivalue >= -107 && ivalue <= 107) {
963  DST_NEED(limit, *dest + 1);
964  *(*dest)++ = ivalue + 139;
965  } else if (ivalue >= 108 && ivalue <= 1131) {
966  DST_NEED(limit, *dest + 2);
967  ivalue = 0xf700u + ivalue - 108;
968  *(*dest)++ = (ivalue >> 8) & 0xff;
969  *(*dest)++ = ivalue & 0xff;
970  } else if (ivalue >= -1131 && ivalue <= -108) {
971  DST_NEED(limit, *dest + 2);
972  ivalue = 0xfb00u - ivalue - 108;
973  *(*dest)++ = (ivalue >> 8) & 0xff;
974  *(*dest)++ = ivalue & 0xff;
975  } else if (ivalue >= -32768 && ivalue <= 32767) { /* shortint */
976  DST_NEED(limit, *dest + 3);
977  *(*dest)++ = 28;
978  *(*dest)++ = (ivalue >> 8) & 0xff;
979  *(*dest)++ = (ivalue) & 0xff;
980  } else { /* Shouldn't come here */
981  ERROR("Unexpected error.");
982  }
983  }
984 
985  return;
986 }
987 
988 static void
990 {
991  int result = 0;
992  card8 b0 = **data, b1, b2;
993 
994  *data += 1;
995 
996  if (b0 == 28) { /* shortint */
997  SRC_NEED(endptr, *data + 2);
998  b1 = **data;
999  b2 = *(*data+1);
1000  result = b1*256+b2;
1001  if (result > 0x7fff)
1002  result -= 0x10000L;
1003  *data += 2;
1004  } else if (b0 >= 32 && b0 <= 246) { /* int (1) */
1005  result = b0 - 139;
1006  } else if (b0 >= 247 && b0 <= 250) { /* int (2) */
1007  SRC_NEED(endptr, *data + 1);
1008  b1 = **data;
1009  result = (b0-247)*256+b1+108;
1010  *data += 1;
1011  } else if (b0 >= 251 && b0 <= 254) {
1012  SRC_NEED(endptr, *data + 1);
1013  b1 = **data;
1014  result = -(b0-251)*256-b1-108;
1015  *data += 1;
1016  } else {
1018  return;
1019  }
1020 
1021  LIMITCHECK(1);
1022  cs_arg_stack[cs_stack_top++] = (double) result;
1023 
1024  return;
1025 }
1026 
1027 /* Type 1 */
1028 static void
1030 {
1031  int result = 0;
1032  int i;
1033 
1034  *data += 1;
1035  SRC_NEED(endptr, *data + 4);
1036  result = **data;
1037  if (result >= 0x80L)
1038  result -= 0x100L;
1039  *data += 1;
1040  for (i = 1; i < 4; i++) {
1041  result = result*256 + (**data);
1042  *data += 1;
1043  }
1044 
1045  LIMITCHECK(1);
1046  cs_arg_stack[cs_stack_top++] = (double) result;
1047 
1048  return;
1049 }
1050 
1051 /*
1052  * TODO:
1053  * Check "seac"
1054  * We cannot do backword parsing due to subroutine, div etc.
1055  */
1056 
1057 /* Parse charstring and build charpath. */
1058 static void
1060  card8 **data, card8 *endptr, cff_index *subrs)
1061 {
1062  card8 b0 = 0, *subr;
1063  int len;
1064 
1065  if (nest > CS_SUBR_NEST_MAX)
1066  ERROR("Subroutine nested too deeply.");
1067 
1068  nest++;
1069  while (*data < endptr && status == CS_PARSE_OK) {
1070  b0 = **data;
1071  if (b0 == 255) {
1072  get_longint(data, endptr); /* Type 1 */
1073  } else if (b0 == cs_return) {
1075  } else if (b0 == cs_callsubr) {
1076  if (cs_stack_top < 1) {
1078  } else {
1079  int idx;
1080 
1082  if (!subrs || idx >= subrs->count)
1083  ERROR("Invalid Subr#.");
1084  subr = subrs->data + subrs->offset[idx] - 1;
1085  len = subrs->offset[idx+1] - subrs->offset[idx];
1086  t1char_build_charpath(cd, &subr, subr+len, subrs);
1087  *data += 1;
1088  }
1089  } else if (b0 == cs_escape) {
1090  do_operator2(cd, data, endptr);
1091  } else if (b0 < 32 && b0 != 28) { /* 19, 20 need mask */
1092  do_operator1(cd, data);
1093  } else if ((b0 <= 22 && b0 >= 27) || b0 == 31) { /* reserved */
1094  status = CS_PARSE_ERROR; /* not an error ? */
1095  } else { /* integer */
1096  get_integer(data, endptr);
1097  }
1098  }
1099 
1100  if (status == CS_SUBR_RETURN) {
1101  status = CS_PARSE_OK;
1102  } else if (status == CS_CHAR_END && *data < endptr) {
1103  if (!(*data == endptr - 1 && **data == cs_return))
1104  WARN("Garbage after endchar. (%d bytes)", (int) (endptr - *data));
1105  } else if (status < CS_PARSE_OK) { /* error */
1106  ERROR("Parsing charstring failed: (status=%d, stack=%d)", status, cs_stack_top);
1107  }
1108 
1109  nest--;
1110 
1111  return;
1112 }
1113 
1114 /*
1115  * Calculate BoundingBox and compress path.
1116  * The essentials of PDF size reduction is not Type 2 charstring compression
1117  * but Type 1 charstring encryption. Encryption makes lossless compression
1118  * useless. We will only do very simple charstring compression.
1119  */
1120 static void
1122 {
1123  int i;
1124  t1_cpath *cur, *prev, *next;
1125  double x, y;
1126 
1127  if (!cd->charpath)
1128  return;
1129 
1130  /* Set dummy large value. */
1131  cd->bbox.llx = cd->bbox.lly = 100000.0;
1132  cd->bbox.urx = cd->bbox.ury = -100000.0;
1133 
1134  cur = cd->charpath;
1135  prev = NULL;
1136  x = y = 0.0;
1137 
1138 #define UPDATE_BBOX(b,x,y) do {\
1139  if ((b).llx > (x)) (b).llx = (x);\
1140  if ((b).urx < (x)) (b).urx = (x);\
1141  if ((b).lly > (y)) (b).lly = (y);\
1142  if ((b).ury < (y)) (b).ury = (y);\
1143 } while (0)
1144 #define TRY_COMPACT (prev && cur && ((prev->num_args + cur->num_args) < CS_ARG_STACK_MAX))
1145 
1146  while (cur != NULL) {
1147  next = cur->next;
1148  switch (cur->type) {
1149  case cs_rmoveto:
1150  x += cur->args[0]; y += cur->args[1];
1151  UPDATE_BBOX(cd->bbox, x, y);
1152  break;
1153  case cs_rlineto:
1154  x += cur->args[0]; y += cur->args[1];
1155  UPDATE_BBOX(cd->bbox, x, y);
1156  if (TRY_COMPACT) {
1157  if (prev->type == cs_rlineto) {
1158  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1159  prev->num_args += cur->num_args;
1160  prev->next = next;
1161  RELEASE(cur); cur = NULL;
1162  } else if (prev->type == cs_rrcurveto) {
1163  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1164  prev->num_args += cur->num_args;
1165  prev->type = cs_rcurveline;
1166  prev->next = next;
1167  RELEASE(cur); cur = NULL;
1168  }
1169  }
1170  break;
1171  case cs_hmoveto:
1172  x += cur->args[0];
1173  UPDATE_BBOX(cd->bbox, x, y);
1174  break;
1175  case cs_hlineto:
1176  x += cur->args[0];
1177  UPDATE_BBOX(cd->bbox, x, y);
1178  if (TRY_COMPACT) {
1179  if ((prev->type == cs_vlineto && (prev->num_args % 2) == 1) ||
1180  (prev->type == cs_hlineto && (prev->num_args % 2) == 0)) {
1181  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1182  prev->num_args += cur->num_args;
1183  prev->next = next;
1184  RELEASE(cur); cur = NULL;
1185  }
1186  }
1187  break;
1188  case cs_vmoveto:
1189  y += cur->args[0];
1190  UPDATE_BBOX(cd->bbox, x, y);
1191  break;
1192  case cs_vlineto:
1193  y += cur->args[0];
1194  UPDATE_BBOX(cd->bbox, x, y);
1195  if (TRY_COMPACT) {
1196  if ((prev->type == cs_hlineto && (prev->num_args % 2) == 1) ||
1197  (prev->type == cs_vlineto && (prev->num_args % 2) == 0)) {
1198  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1199  prev->num_args += cur->num_args;
1200  prev->next = next;
1201  RELEASE(cur); cur = NULL;
1202  }
1203  }
1204  break;
1205  case cs_rrcurveto:
1206  for (i = 0; i < 3; i++) {
1207  x += cur->args[2*i]; y += cur->args[2*i+1];
1208  UPDATE_BBOX(cd->bbox, x, y);
1209  }
1210  if (TRY_COMPACT) {
1211  if (prev->type == cs_rrcurveto) {
1212  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1213  prev->num_args += cur->num_args;
1214  prev->next = next;
1215  RELEASE(cur); cur = NULL;
1216  } else if (prev->type == cs_rlineto) {
1217  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1218  prev->num_args += cur->num_args;
1219  prev->type = cs_rlinecurve;
1220  prev->next = next;
1221  RELEASE(cur); cur = NULL;
1222  }
1223  }
1224  break;
1225  case cs_vhcurveto:
1226  y += cur->args[0];
1227  UPDATE_BBOX(cd->bbox, x, y);
1228  x += cur->args[1]; y += cur->args[2];
1229  UPDATE_BBOX(cd->bbox, x, y);
1230  x += cur->args[3];
1231  UPDATE_BBOX(cd->bbox, x, y);
1232  if (TRY_COMPACT) {
1233  if ((prev->type == cs_hvcurveto && ((prev->num_args / 4) % 2) == 1) ||
1234  (prev->type == cs_vhcurveto && ((prev->num_args / 4) % 2) == 0)) {
1235  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1236  prev->num_args += cur->num_args;
1237  prev->next = next;
1238  RELEASE(cur); cur = NULL;
1239  }
1240  }
1241  break;
1242  case cs_hvcurveto:
1243  x += cur->args[0];
1244  UPDATE_BBOX(cd->bbox, x, y);
1245  x += cur->args[1]; y += cur->args[2];
1246  UPDATE_BBOX(cd->bbox, x, y);
1247  y += cur->args[3];
1248  UPDATE_BBOX(cd->bbox, x, y);
1249  if (TRY_COMPACT) {
1250  if ((prev->type == cs_vhcurveto && ((prev->num_args / 4) % 2) == 1) ||
1251  (prev->type == cs_hvcurveto && ((prev->num_args / 4) % 2) == 0)) {
1252  copy_args(prev->args+prev->num_args, cur->args, cur->num_args);
1253  prev->num_args += cur->num_args;
1254  prev->next = next;
1255  RELEASE(cur); cur = NULL;
1256  }
1257  }
1258  break;
1259  case cs_flex:
1260  for (i = 0; i < 6; i++) {
1261  x += cur->args[2*i]; y += cur->args[2*1+1];
1262  UPDATE_BBOX(cd->bbox, x, y);
1263  }
1264  if (cur->args[12] == 50.0) {
1265  if (cur->args[1] == 0.0 && cur->args[11] == 0.0 &&
1266  cur->args[5] == 0.0 && cur->args[7] == 0.0 &&
1267  cur->args[3] + cur->args[9] == 0.0) {
1268  /* cur->args[0] = cur->args[0]; dx1 */
1269  cur->args[1] = cur->args[2]; /* dx2 */
1270  cur->args[2] = cur->args[3]; /* dy2 */
1271  cur->args[3] = cur->args[4]; /* dx3 */
1272  cur->args[4] = cur->args[6]; /* dx4 */
1273  cur->args[5] = cur->args[8]; /* dx5 */
1274  cur->args[6] = cur->args[10]; /* dx6 */
1275  cur->num_args = 7;
1276  cur->type = cs_hflex;
1277  } else if (cur->args[5] == 0.0 && cur->args[7] == 0.0 &&
1278  (cur->args[1] + cur->args[3] +
1279  cur->args[9] + cur->args[11]) == 0) {
1280  /* cur->args[0] = cur->args[0]; dx1 */
1281  /* cur->args[1] = cur->args[1]; dy1 */
1282  /* cur->args[2] = cur->args[2]; dx2 */
1283  /* cur->args[3] = cur->args[3]; dy2 */
1284  /* cur->args[4] = cur->args[4]; dx3 */
1285  cur->args[5] = cur->args[6]; /* dx4 */
1286  cur->args[6] = cur->args[8]; /* dx5 */
1287  cur->args[7] = cur->args[9]; /* dy5 */
1288  cur->args[8] = cur->args[10]; /* dx6 */
1289  cur->num_args = 9;
1290  cur->type = cs_hflex1;
1291  }
1292  }
1293  break;
1294  case CS_HINT_DECL:
1295  case cs_cntrmask:
1296  /* noop */
1297  break;
1298  default:
1299  ERROR("Unexpected Type 2 charstring command %d.", cur->type);
1300  break;
1301  }
1302  if (cur != NULL)
1303  prev = cur;
1304  cur = next;
1305  }
1306 
1307  /* Had no path. Fix lower-left point. */
1308  if (cd->bbox.llx > cd->bbox.urx)
1309  cd->bbox.llx = cd->bbox.urx = cd->sbw.wx;
1310  if (cd->bbox.lly > cd->bbox.ury)
1311  cd->bbox.lly = cd->bbox.ury = cd->sbw.wy;
1312 
1313  return;
1314 }
1315 
1316 #define RESET_STATE() do {\
1317  status = CS_PARSE_OK;\
1318  phase = T1_CS_PHASE_INIT;\
1319  nest = 0;\
1320  ps_stack_top = 0;\
1321 } while (0)
1322 
1323 int
1325 {
1326  t1_chardesc t1char, *cd;
1327 
1328  cd = &t1char;
1329  init_charpath(cd);
1330  RESET_STATE();
1331  CLEARSTACK();
1332  t1char_build_charpath(cd, &src, src+srclen, subrs);
1333  if (cs_stack_top != 0 || ps_stack_top != 0)
1334  WARN("Stack not empty. (%d, %d)", cs_stack_top, ps_stack_top);
1335  do_postproc(cd);
1336  if (ginfo) {
1337  ginfo->wx = cd->sbw.wx;
1338  ginfo->wy = cd->sbw.wy;
1339  ginfo->bbox.llx = cd->bbox.llx;
1340  ginfo->bbox.lly = cd->bbox.lly;
1341  ginfo->bbox.urx = cd->bbox.urx;
1342  ginfo->bbox.ury = cd->bbox.ury;
1343  if (cd->flags & T1_CS_FLAG_USE_SEAC) {
1344  ginfo->use_seac = 1;
1345  ginfo->seac.adx = cd->seac.adx;
1346  ginfo->seac.ady = cd->seac.ady;
1347  ginfo->seac.bchar = cd->seac.bchar;
1348  ginfo->seac.achar = cd->seac.achar;
1349  } else {
1350  ginfo->use_seac = 0;
1351  }
1352  }
1353  release_charpath(cd);
1354 
1355  return 0;
1356 }
1357 
1358 #define CHECK_BUFFER(n) if (dst+(n) >= endptr) {\
1359  ERROR("Buffer overflow.");\
1360 }
1361 #define CHECK_STATUS() if (status != CS_PARSE_OK) {\
1362  ERROR("Charstring encoder error: %d", status);\
1363 }
1364 
1365 /*
1366  * Encode Charpath as a Type 2 Charstring
1367  */
1368 static int
1370  double default_width, double nominal_width,
1371  card8 *dst, card8 *endptr)
1372 {
1373  card8 *save;
1374  t1_cpath *curr;
1375 
1376  ASSERT(cd);
1377 
1378  save = dst;
1379  curr = cd->charpath;
1380 
1381  RESET_STATE();
1382  CLEARSTACK();
1383  /*
1384  * Advance Width
1385  */
1386  if (cd->sbw.wx != default_width) {
1387  double wx = cd->sbw.wx - nominal_width;
1388  put_numbers(&wx, 1, &dst, endptr);
1389  CHECK_STATUS();
1390  }
1391  /*
1392  * Hint Declaration
1393  */
1394  {
1395  int num_hstems = 0, num_vstems = 0;
1396  int i, reset = 1;
1397  double stem[2];
1398 
1399  for (i = 0; i < cd->num_stems && cd->stems[i].dir == HSTEM; i++) {
1400  num_hstems++;
1401  stem[0] = (reset ?
1402  (cd->stems[i].pos) :
1403  (cd->stems[i].pos - (cd->stems[i-1].pos + cd->stems[i-1].del)));
1404  stem[1] = cd->stems[i].del;
1405  put_numbers(stem, 2, &dst, endptr);
1406  CHECK_STATUS();
1407  reset = 0;
1408  if (2*num_hstems > CS_ARG_STACK_MAX - 3) {
1409  CHECK_BUFFER(1);
1411  reset = 1;
1412  }
1413  }
1414  if (reset == 0) {
1415  CHECK_BUFFER(1);
1417  }
1418  reset = 1;
1419  if (cd->num_stems - num_hstems > 0) {
1420  for (i = num_hstems; i < cd->num_stems; i++) {
1421  num_vstems++;
1422  stem[0] = (reset ?
1423  (cd->stems[i].pos) :
1424  (cd->stems[i].pos - (cd->stems[i-1].pos + cd->stems[i-1].del)));
1425  stem[1] = cd->stems[i].del;
1426  put_numbers(stem, 2, &dst, endptr);
1427  CHECK_STATUS();
1428  reset = 0;
1429  if (2*num_vstems > CS_ARG_STACK_MAX - 3) {
1430  CHECK_BUFFER(1);
1432  reset = 1;
1433  }
1434  }
1435  if (reset == 0) {
1436  CHECK_BUFFER(1);
1437  if ((cd->flags & T1_CS_FLAG_USE_HINTMASK) ||
1438  (cd->flags & T1_CS_FLAG_USE_CNTRMASK)) {
1439  /*
1440  * The vstem hint operator can be ommited if hstem and vstem hints
1441  * are both declared at the beginning of a charstring, and is
1442  * followed directly by the hintmask or cntrmask operators.
1443  */
1444  if (curr->type != CS_HINT_DECL &&
1445  curr->type != cs_cntrmask) {
1446  *dst++ = (card8) cs_vstemhm;
1447  }
1448  } else {
1449  *dst++ = (card8) cs_vstem;
1450  }
1451  }
1452  }
1453  }
1454  /*
1455  * Path Construction and Hint Replacement
1456  */
1457  while (curr != NULL && curr->type != cs_endchar) {
1458  switch (curr->type) {
1459  case CS_HINT_DECL:
1460  {
1461  card8 hintmask[(CS_STEM_ZONE_MAX+7)/8];
1462 
1463  memset(hintmask, 0, (cd->num_stems+7)/8);
1464  while (curr != NULL && curr->type == CS_HINT_DECL) {
1465  int stem_idx;
1466 
1467  stem_idx = get_stem(cd, (int) curr->args[0]);
1468  ASSERT(stem_idx < cd->num_stems);
1469  hintmask[stem_idx/8] |= (1 << (7 - (stem_idx % 8)));
1470  curr = curr->next;
1471  }
1472  if (cd->flags & T1_CS_FLAG_USE_HINTMASK) {
1473  CHECK_BUFFER((cd->num_stems+7)/8 + 1);
1474  *dst++ = (card8) cs_hintmask;
1475  memcpy(dst, hintmask, (cd->num_stems+7)/8);
1476  dst += (cd->num_stems+7)/8;
1477  }
1478  }
1479  break;
1480  case cs_cntrmask:
1481  {
1482  card8 cntrmask[(CS_STEM_ZONE_MAX+7)/8];
1483  int stem_idx, i;
1484 
1485  memset(cntrmask, 0, (cd->num_stems+7)/8);
1486  for (i = 0; i < curr->num_args; i++) {
1487  stem_idx = get_stem(cd, (int) curr->args[i]);
1488  ASSERT(stem_idx < cd->num_stems);
1489  cntrmask[stem_idx/8] |= (1 << (7 - (stem_idx % 8)));
1490  }
1491  CHECK_BUFFER((cd->num_stems+7)/8 + 1);
1492  *dst++ = (card8) cs_cntrmask;
1493  memcpy(dst, cntrmask, (cd->num_stems+7)/8);
1494  dst += (cd->num_stems+7)/8;
1495  curr = curr->next;
1496  }
1497  break;
1498  case cs_rmoveto: case cs_hmoveto: case cs_vmoveto:
1499  case cs_rlineto: case cs_hlineto: case cs_vlineto:
1500  case cs_rrcurveto: case cs_hvcurveto: case cs_vhcurveto:
1501  case cs_rlinecurve: case cs_rcurveline:
1502  {
1503  put_numbers(curr->args, curr->num_args, &dst, endptr);
1504  CHECK_STATUS();
1505  CHECK_BUFFER(1);
1506  *dst++ = (card8) curr->type;
1507  curr = curr->next;
1508  }
1509  break;
1510  case cs_flex: case cs_hflex:
1511  case cs_hflex1:
1512  {
1513  put_numbers(curr->args, curr->num_args, &dst, endptr);
1514  CHECK_STATUS();
1515  CHECK_BUFFER(2);
1516  *dst++ = (card8) cs_escape;
1517  *dst++ = (card8) curr->type;
1518  curr = curr->next;
1519  }
1520  break;
1521  default:
1522  ERROR("Unknown Type 2 charstring command: %d", curr->type);
1523  break;
1524  }
1525  }
1526 
1527  /*
1528  * (adx ady bchar achar) endchar
1529  */
1530  if (cd->flags & T1_CS_FLAG_USE_SEAC) {
1531  double seac[4];
1532  seac[0] = cd->seac.adx;
1533  seac[1] = cd->seac.ady;
1534  seac[2] = cd->seac.bchar;
1535  seac[3] = cd->seac.achar;
1536  put_numbers(seac, 4, &dst, endptr);
1537  CHECK_STATUS();
1538  CHECK_BUFFER(2);
1539  WARN("Obsolete four arguments of \"endchar\" will be used for Type 1 \"seac\" operator.");
1540  }
1541  CHECK_BUFFER(1);
1542  *dst++ = (card8) cs_endchar;
1543 
1544  return (int) (dst - save);
1545 }
1546 
1547 int
1549  card8 *src, int srclen, cff_index *subrs,
1550  double default_width, double nominal_width,
1551  t1_ginfo *ginfo)
1552 {
1553  int length;
1554  t1_chardesc t1char, *cd;
1555 
1556  cd = &t1char;
1557  init_charpath(cd);
1558  RESET_STATE();
1559  CLEARSTACK();
1560  t1char_build_charpath(cd, &src, src+srclen, subrs);
1561  if (cs_stack_top != 0 || ps_stack_top != 0)
1562  WARN("Stack not empty. (%d, %d)", cs_stack_top, ps_stack_top);
1563  do_postproc(cd);
1564  SORT_STEMS(cd);
1565 
1566  length = t1char_encode_charpath(cd, default_width, nominal_width, dst, dst+dstlen);
1567 
1568  if (ginfo) {
1569  ginfo->wx = cd->sbw.wx;
1570  ginfo->wy = cd->sbw.wy;
1571  ginfo->bbox.llx = cd->bbox.llx;
1572  ginfo->bbox.lly = cd->bbox.lly;
1573  ginfo->bbox.urx = cd->bbox.urx;
1574  ginfo->bbox.ury = cd->bbox.ury;
1575  if (cd->flags & T1_CS_FLAG_USE_SEAC) {
1576  ginfo->use_seac = 1;
1577  ginfo->seac.adx = cd->seac.adx;
1578  ginfo->seac.ady = cd->seac.ady;
1579  ginfo->seac.bchar = cd->seac.bchar;
1580  ginfo->seac.achar = cd->seac.achar;
1581  } else {
1582  ginfo->use_seac = 0;
1583  }
1584  }
1585  release_charpath(cd);
1586 
1587  return length;
1588 }
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
double ury
Definition: aftopl.c:56
double urx
Definition: aftopl.c:55
double lly
Definition: aftopl.c:54
double wx
Definition: aftopl.c:57
double llx
Definition: aftopl.c:53
#define type(a)
Definition: aptex-macros.h:171
#define count(a)
Definition: aptex-macros.h:781
#define next(a)
Definition: aptex-macros.h:924
static point_t cur
Definition: backend_eps.c:108
int cmp(const void *p, const void *q)
Definition: bkmk2uni.c:1611
#define n
Definition: t4ht.c:1290
@ seac
Definition: cscommands.h:21
@ sbw
Definition: cscommands.h:20
static int id
Definition: bifont.c:66
struct rect data
Definition: dvipdfm.c:64
void t1char(unsigned char ch)
Definition: dvistuff.c:1404
#define args1(x)
Definition: fccache.c:1690
#define args2(x, y)
Definition: fccache.c:1691
#define v1
#define v2
static FIELD_PTR prev
Definition: genind.c:36
static FIELD_PTR curr
Definition: genind.c:35
#define memcpy(d, s, n)
Definition: gsftopk.c:64
#define MAX(a, b)
Definition: jpegint.h:267
#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
for(n=0;n< outline->n_points;n++)
Definition: ftbbox.c:494
FT_BBox bbox
Definition: ftbbox.c:467
FT_UInt idx
Definition: cffcmap.c:135
kerning y
Definition: ttdriver.c:212
#define NEW
Definition: gdkanji.c:77
#define CS_SUBR_NEST_MAX
Definition: cff_limits.h:42
#define CS_STEM_ZONE_MAX
Definition: cff_limits.h:39
#define CS_ARG_STACK_MAX
Definition: cff_limits.h:40
unsigned char card8
Definition: cff_types.h:42
static int num_stems
Definition: cs_type2.c:83
struct _dpx_conf dpx_conf
Definition: dpxconf.c:33
void WARN(const char *fmt,...)
Definition: error.c:62
#define ASSERT(e)
Definition: error.h:48
#define RELEASE(p)
Definition: mem.h:39
int t1char_convert_charstring(card8 *dst, int dstlen, card8 *src, int srclen, cff_index *subrs, double default_width, double nominal_width, t1_ginfo *ginfo)
Definition: t1_char.c:1548
int t1char_get_metrics(card8 *src, int srclen, cff_index *subrs, t1_ginfo *ginfo)
Definition: t1_char.c:1324
struct t1_cpath t1_cpath
#define ERROR(string)
Definition: error.h:36
struct stem stems[128]
Definition: type1.c:298
#define reset(f, n)
Definition: cpascal.h:79
#define fabs(x)
Definition: cpascal.h:211
#define floor(x)
Definition: cpascal.h:52
#define length(c)
Definition: ctangleboot.c:65
#define b0
Definition: texmfmem.h:168
#define b1
Definition: texmfmem.h:169
#define b2
Definition: texmfmem.h:170
#define dest
unsigned bchar
const int * pos
Definition: combiners.h:905
float x
Definition: cordic.py:15
union value value
Definition: obx.h:44
bstring c int memset(void *s, int c, int length)
#define dir
#define flags
#define T1_CS_PHASE_INIT
Definition: t1_char.c:73
static void do_othersubr2(t1_chardesc *cd)
Definition: t1_char.c:645
#define cs_rcurveline
Definition: t1_char.c:184
static void get_integer(card8 **data, card8 *endptr)
Definition: t1_char.c:989
#define CS_STEM_GROUP_MAX
Definition: t1_char.c:85
#define cs_vhcurveto
Definition: t1_char.c:190
static int nest
Definition: t1_char.c:79
#define cs_dotsection
Definition: t1_char.c:200
#define CLEARSTACK()
Definition: t1_char.c:353
#define T1_CS_PHASE_PATH
Definition: t1_char.c:75
#define cs_rlinecurve
Definition: t1_char.c:185
#define CS_FLEX_CTRL
Definition: t1_char.c:148
#define cs_hsbw
Definition: t1_char.c:173
#define cs_hstem
Definition: t1_char.c:161
#define cs_div
Definition: t1_char.c:212
static void put_numbers(double *argv, int argn, card8 **dest, card8 *limit)
Definition: t1_char.c:935
static int get_stem(t1_chardesc *cd, int stem_id)
Definition: t1_char.c:289
#define CS_CHAR_END
Definition: t1_char.c:65
static void do_othersubr0(t1_chardesc *cd)
Definition: t1_char.c:587
#define cs_hlineto
Definition: t1_char.c:166
#define LIMITCHECK(n)
Definition: t1_char.c:341
#define cs_cntrmask
Definition: t1_char.c:180
static int add_stem(t1_chardesc *cd, double pos, double del, int dir)
Definition: t1_char.c:302
#define T1_CS_FLAG_USE_HINTMASK
Definition: t1_char.c:118
static void do_othersubr3(t1_chardesc *cd)
Definition: t1_char.c:676
static int cs_stack_top
Definition: t1_char.c:140
static double ps_arg_stack[(96 *2+2)]
Definition: t1_char.c:145
#define T1_CS_FLAG_USE_SEAC
Definition: t1_char.c:120
#define cs_vstem
Definition: t1_char.c:163
#define cs_hintmask
Definition: t1_char.c:179
#define PS_ARG_STACK_MAX
Definition: t1_char.c:94
#define DST_NEED(a, b)
Definition: t1_char.c:69
#define SORT_STEMS(cd)
Definition: t1_char.c:286
static double cs_arg_stack[48+1]
Definition: t1_char.c:144
#define cs_sbw
Definition: t1_char.c:207
#define cs_vmoveto
Definition: t1_char.c:164
static int status
Definition: t1_char.c:67
#define cs_rrcurveto
Definition: t1_char.c:168
static void do_othersubr13(t1_chardesc *cd)
Definition: t1_char.c:693
static void do_operator2(t1_chardesc *cd, card8 **data, card8 *endptr)
Definition: t1_char.c:804
#define T1_CS_PHASE_FLEX
Definition: t1_char.c:76
#define cs_hmoveto
Definition: t1_char.c:182
#define cs_flex
Definition: t1_char.c:235
static void do_othersubr1(void)
Definition: t1_char.c:638
static void get_longint(card8 **data, card8 *endptr)
Definition: t1_char.c:1029
static void do_othersubr12(void)
Definition: t1_char.c:682
static void t1char_build_charpath(t1_chardesc *cd, card8 **data, card8 *endptr, cff_index *subrs)
Definition: t1_char.c:1059
#define SRC_NEED(a, b)
Definition: t1_char.c:70
#define cs_vlineto
Definition: t1_char.c:167
static void do_postproc(t1_chardesc *cd)
Definition: t1_char.c:1121
#define TRY_COMPACT
#define cs_callothersubr
Definition: t1_char.c:216
#define CS_PARSE_OK
Definition: t1_char.c:62
#define HSTEM
Definition: t1_char.c:104
#define CS_HINT_DECL
Definition: t1_char.c:147
static int ps_stack_top
Definition: t1_char.c:141
#define UPDATE_BBOX(b, x, y)
#define T1_CS_FLAG_NONE
Definition: t1_char.c:117
static void release_charpath(t1_chardesc *cd)
Definition: t1_char.c:400
static void add_charpath(t1_chardesc *cd, int type, double *argv, int argn)
Definition: t1_char.c:362
#define cs_setcurrentpoint
Definition: t1_char.c:233
#define cs_hstem3
Definition: t1_char.c:202
#define CS_PARSE_ERROR
Definition: t1_char.c:61
#define cs_seac
Definition: t1_char.c:206
static void do_callothersubr(t1_chardesc *cd)
Definition: t1_char.c:771
static int stem_compare(const void *v1, const void *v2)
Definition: t1_char.c:263
static void copy_args(double *args1, double *args2, int count)
Definition: t1_char.c:330
static int t1char_encode_charpath(t1_chardesc *cd, double default_width, double nominal_width, card8 *dst, card8 *endptr)
Definition: t1_char.c:1369
#define cs_closepath
Definition: t1_char.c:169
#define cs_hflex
Definition: t1_char.c:234
#define cs_hflex1
Definition: t1_char.c:236
static void init_charpath(t1_chardesc *cd)
Definition: t1_char.c:389
#define cs_hvcurveto
Definition: t1_char.c:191
#define CHECKSTACK(n)
Definition: t1_char.c:347
#define cs_rmoveto
Definition: t1_char.c:181
#define cs_rlineto
Definition: t1_char.c:165
static int phase
Definition: t1_char.c:78
#define cs_callsubr
Definition: t1_char.c:170
#define ADD_PATH(p, t, n)
Definition: t1_char.c:419
#define cs_hstemhm
Definition: t1_char.c:178
#define CS_STACK_ERROR
Definition: t1_char.c:60
#define VSTEM
Definition: t1_char.c:105
#define cs_escape
Definition: t1_char.c:172
#define cs_return
Definition: t1_char.c:171
#define CHECK_BUFFER(n)
Definition: t1_char.c:1358
#define cs_endchar
Definition: t1_char.c:174
#define cs_vstemhm
Definition: t1_char.c:183
#define CS_SUBR_RETURN
Definition: t1_char.c:64
#define T1_CS_FLAG_USE_CNTRMASK
Definition: t1_char.c:119
#define RESET_STATE()
Definition: t1_char.c:1316
#define cs_vstem3
Definition: t1_char.c:201
#define cs_pop
Definition: t1_char.c:217
static void do_operator1(t1_chardesc *cd, card8 **data)
Definition: t1_char.c:425
#define CHECK_STATUS()
Definition: t1_char.c:1361
#define IS_PATH_OPERATOR(o)
Definition: t1_char.c:239
#define ivalue(o)
Definition: lobject.h:163
short type
Definition: mkind.h:396
int verbose_level
Definition: dpxconf.h:35
Definition: usprintf.c:39
Definition: sh.h:1226
Definition: type1.c:137
double ury
Definition: t1_char.c:128
double llx
Definition: t1_char.c:128
card8 bchar
Definition: t1_char.c:132
double wy
Definition: t1_char.c:125
card8 achar
Definition: t1_char.c:132
double urx
Definition: t1_char.c:128
struct t1_chardesc::@161 sbw
double sbx
Definition: t1_char.c:125
double adx
Definition: t1_char.c:131
double wx
Definition: t1_char.c:125
int flags
Definition: t1_char.c:123
t1_cpath * charpath
Definition: t1_char.c:136
double sby
Definition: t1_char.c:125
int num_stems
Definition: t1_char.c:134
t1_stem stems[96]
Definition: t1_char.c:135
t1_cpath * lastpath
Definition: t1_char.c:137
struct t1_chardesc::@162 bbox
struct t1_chardesc::@163 seac
double lly
Definition: t1_char.c:128
double ady
Definition: t1_char.c:131
int num_args
Definition: t1_char.c:99
int type
Definition: t1_char.c:98
struct t1_cpath * next
Definition: t1_char.c:101
double args[48]
Definition: t1_char.c:100
int id
Definition: t1_char.c:107
double del
Definition: t1_char.c:109
int dir
Definition: t1_char.c:108
double pos
Definition: t1_char.c:109
double stems[96]
Definition: t1_char.c:114
int num_stems
Definition: t1_char.c:113
static unsigned char * save
Definition: t1disasm.c:278
int subrs
Definition: t1part.c:260
s1
Definition: t4ht.c:1059
char * s2
Definition: t4ht.c:1062
op
Definition: tex4ht.c:3129
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)
Definition: lio.h:45
Definition: obx.h:51
#define argv
Definition: xmain.c:270
#define limit(x)
Definition: yuvsplittoppm.c:26
#define argn