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)  

dvistuff.c
Go to the documentation of this file.
1 /*
2  * dvi2tty
3  * Copyright (C) 2003 Marcel J.E. Mol <marcel@mesa.nl>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18  *
19  */
20 
21 /*
22  * Include files
23  */
24 
25 #include "dvi2tty.h"
26 
27 #if defined(VMS)
28 # include types.h
29 # include stat
30 #else
31 # if defined(THINK_C)
32 # include <unix.h>
33 # else
34 # include <sys/types.h>
35 # include <sys/stat.h>
36 # endif
37 #endif
38 
39 #if defined(MSDOS) || defined(THINK_C)
40 # include <math.h>
41 #endif
42 
43 #include "commands.h"
44 #include "tex2ucs.h"
45 
46 
47 /*
48  * Constant definitions
49  */
50 
51 #if defined(VMS)
52 #define mseek vmsseek
53 #define ROUND(a) (a>=0.0 ? (int) (a + 0.5) : (int) (a - 0.5) )
54 #else
55 #define mseek fseek
56 #endif
57 
58 #define VERSIONID 2 /* dvi version number that pgm handles */
59 #define VERTICALEPSILON 450000L /* crlf when increasing v more than this */
60 
61 #define rightmargin MAXTERMWIDTH+20
62  /* nr of columns allowed to the right of h=0*/
63 #define leftmargin -50 /* give some room for negative h-coordinate */
64 #define LINELEN rightmargin - leftmargin + 1
65 
66 #define MOVE TRUE /* if advancing h when outputing a rule */
67 #define STAY FALSE /* if not advancing h when outputing a rule */
68 
69 #define absolute 0 /* for seeking in files */
70 #define relative 1
71 
72 #define FORM 12 /* formfeed */
73 #define SPACE 32 /* space */
74 #define DEL 127 /* delete */
75 
76 #define LASTCHAR 127 /* max dvi character, above are commands */
77 #define LASTCHAR8B 255
78 
79 #define IS_UNICODE 0x400000 /* flag for unicode */
80 #define MAX_UNICODE 0x10FFFF /* max unicode */
81 
82 #define IMIN(a, b) (a<b ? a : b)
83 #define IMAX(a, b) (a>b ? a : b)
84 
85 #define get1() num(1)
86 #define get2() num(2)
87 #define get3() num(3)
88 #define get4() num(4)
89 #define sget1() snum(1)
90 #define sget2() snum(2)
91 #define sget3() snum(3)
92 #define sget4() snum(4)
93 
94 
95 /*
96  * Structure and variable definitions
97  */
98 
99 const char *dvistuff = "@(#) dvistuff.c " VERSION " 20101027 M.J.E. Mol (c) 1989-2010";
100 
101 typedef struct {
102  long hh;
103  long vv;
104  long ww;
105  long xx;
106  long yy;
107  long zz;
108 } stackitem;
109 
110 typedef struct lineptr { /* the lines of text to be output to outfile */
111  long vv; /* vertical position of the line */
112  int charactercount; /* pos of last char on line */
113  struct lineptr *prev; /* preceding line */
114  struct lineptr *next; /* succeeding line */
115  long text[LINELEN+1]; /* leftmargin...rightmargin */
117 
118 typedef struct _font {
119  long num;
120  struct _font * next;
121  char * name;
122  unsigned char flags; /* to store font encoding types */
123  int fontnum; /* helper for japanese fonts */
124  bool is8bit; /* 8bit fonts */
126 
127 #define TTFONT 0x01
128 #define SYMFONT 0x02
129 #define MIFONT 0x03
130 #define T1FONT 0x04
131 #define TS1FONT 0x05
132 #define OT2FONT 0x10
133 #define T2AFONT 0x11
134 #define T2BFONT 0x12
135 #define T2CFONT 0x13
136 #define X2FONT 0x14
137 #define JPFONT 0x80
138 
139 
140 
141 bool pageswitchon; /* true if user-set pages to print */
142 bool sequenceon; /* false if pagesw-nrs refers to TeX-nrs */
143 bool scascii; /* if true make Scand. nat. chars right */
144 bool latin1; /* if true make latin1 chars right */
145 bool utf8; /* if true print by utf8 encoding */
146 bool noligaturefi; /* if true do not use ligature for ff,fi,fl,ffi,ffl */
147 bool accent; /* if true output accents etc: \'{e} etc. */
148 bool ttfont = FALSE; /* if true we assumed ttfonts, not cmr */
149 bool symbolfont = FALSE; /* true if font is a symbol font */
150 bool nttj = FALSE; /* switch to NTT japanese fonts ... */
151 bool asciip = FALSE; /* switch to ASCII japanese fonts ... */
152 bool uptex = FALSE; /* switch to upTeX CJK fonts ... */
153 bool japan = FALSE; /* switch to NTT/ASCII/.. japanese fonts ... */
154 bool jautodetect = FALSE; /* switch if do auto detection of Japanese TeX */
155 bool jdetect = FALSE; /* switch if Japanese TeX detection is done */
156 bool mifont = FALSE; /* ASCII japanese font ??? */
157 bool is8bit = FALSE; /* true if 8bit encoding font */
158 bool noffd; /* if true output ^L instead of formfeed */
159 const char *delim; /* -bdelim for font switch printing */
160 bool printfont; /* true if user wants font switches printed */
161 bool compose; /* if true try to compose a combining character sequence */
162 bool allchar; /* true if user sets all characters */
163  /* overrides sscasci, accent */
164 
165 int opcode; /* dvi-opcodes */
166 
167 long h, v; /* coordinates, horizontal and vertical */
168 long w, x, y, z; /* horizontal and vertical amounts */
169 
170 long pagecounter; /* sequence page number counter */
171 long backpointer; /* pointer for offset to previous page */
172 long pagenr; /* TeX page number */
173 int stackmax; /* stacksize required */
174 
175 long maxpagewidth; /* width of widest page in file */
176 long charwidth; /* aprox width of character */
178  /* aprox height of a line */
179 
180 linetype * currentline; /* pointer to current line on current page */
181 linetype * firstline; /* pointer to first line on current page */
182 linetype * lastline; /* pointer to last line on current page */
183 int firstcolumn; /* 1st column with something to print */
184 
185 stackitem * stack; /* stack for dvi-pushes */
186 int sptr; /* stack pointer */
187 
188 font * fonts = NULL; /* List of fontnames defined */
189 font * fnt = NULL; /* Current font */
190 
191 int kanji1 = 0; /* number of rest of trailer bytes in kanji character */
192 
193 
194 
195 /*
196  * Function definitions
197  */
198 
199 #if defined(MSDOS)
200 void postamble (void);
201 void preamble (void);
202 void walkpages (void);
203 void initpage (void);
204 void dopage (void);
205 void skippage (void);
206 void printpage (void);
207 bool inlist (long);
208 void rule (bool, long, long);
209 void ruleaux (long, long, char);
210 long horizontalmove (long);
211 int skipnops (void);
212 linetype * my_getline (void);
213 linetype * findline (void);
214 unsigned long num (int);
215 long snum (int);
216 void dochar (unsigned char);
217 void symchar (unsigned char);
218 void michar (unsigned char);
219 void normchar (char, unsigned char);
220 void t1char (unsigned char);
221 void ts1char (unsigned char);
222 void ot2char (unsigned char);
223 void t2char (char, unsigned char);
224 void outchar (long);
225 void putcharacter (long);
226 void setchar (long);
227 void fontdef (int);
228 void setfont (long);
229 void jischar (unsigned long);
230 int compute_jis (int, unsigned int, unsigned int *, unsigned int *);
231 void dounichar (long);
232 void dokanji (long);
233 int getjsubfont (char *);
234 
235 #else
236 void postamble (void);
237 void preamble (void);
238 void walkpages (void);
239 void initpage (void);
240 void dopage (void);
241 void skippage (void);
242 void printpage (void);
243 bool inlist (long pagenr);
244 void rule (bool moving, long rulewt, long ruleht);
245 void ruleaux (long rulewt, long ruleht, char ch);
246 long horizontalmove (long amount);
247 int skipnops (void);
248 linetype * my_getline (void);
249 linetype * findline (void);
250 unsigned long num (int size);
251 long snum (int size);
252 void dochar (unsigned char ch);
253 void symchar (unsigned char ch);
254 void michar (unsigned char ch);
255 void normchar (char flag, unsigned char ch);
256 void t1char (unsigned char ch);
257 void ts1char (unsigned char ch);
258 void ot2char (unsigned char ch);
259 void t2char (char flag, unsigned char ch);
260 void outchar (long ch);
261 void putcharacter (long charnr);
262 void setchar (long charnr);
263 void fontdef (int x);
264 void setfont (long fntnum);
265 void jischar (unsigned long ch);
266 void compute_jis (int f, unsigned int c, unsigned int * ku, unsigned int * ten);
267 void dounichar (long ch);
268 void dokanji (long ch);
269 int getjsubfont (char * s);
270 #if defined(VMS)
271 long vmsseek ();
272 long vms_ftell ();
273 long vms_ungetc ();
274 #endif
275 #endif
276 
277 
278 
279 /*
280  * DVIMAIN -- The main function for processing the dvi file.
281  * Here we assume there are to file pointers: DVIfile and output.
282  * Also we have a list of pages pointed to by 'currentpage',
283  * which is only used (in 'inlist()') when a page list is given.
284  */
285 
286 void dvimain(void)
287 {
288 
289  postamble(); /* seek and process the postamble */
290  preamble(); /* process preamble */
291  /* note that walkpages *must* immediately follow preamble */
292  walkpages(); /* time to do the actual work! */
293 
294  return;
295 
296 } /* dvimain */
297 
298 
299  /*
300  * POSTAMBLE -- Find and process postamble, use random access
301  */
302 
303 void postamble(void)
304 {
305  register long size;
306  register int count;
307 #if !defined (THINK_C) && defined(VMS)
308  struct stat st;
309 #endif
310 
311 #if defined (THINK_C)
312  size = DVIfile->len;
313 #elif defined(VMS)
314  fstat (fileno(DVIfile), &st);
315  size = (long) st.st_size; /* get size of file */
316 #else
317  fseek (DVIfile, 0L, SEEK_END);
318  size = ftell (DVIfile); /* get size of file */
319 #endif
320 
321  count = -1;
322  do { /* back file up past signature bytes (223), to id-byte */
323  if (size-- == 0)
324  errorexit(nopst);
326  opcode = (int) get1();
327  count++;
328  } while (opcode == TRAILER);
329  if (count < 4) { /* must have 4 trailer bytes */
330  foo = count;
331  errorexit(fwsgn);
332  }
333  if (opcode != VERSIONID)
334  errorexit(badid);
335  mseek(DVIfile, size-4, absolute); /* back up to back-pointer */
336  mseek(DVIfile, sget4(), absolute); /* and to start of postamble */
337  if (get1() != POST)
338  errorexit(nopst);
339  mseek(DVIfile, 20L, relative); /* lastpageoffset, numerator, denominator */
340  /* magnification, maxpageheight */
341  maxpagewidth = sget4();
343  stackmax = (int) get2();
344  if ((stack = (stackitem *) malloc(stackmax * sizeof(stackitem))) == NULL)
345  errorexit(stkrq);
346 
347  /* get2() -- totalpages */
348  /* fontdefs do fontdefs in flight ... */
349 
350  return;
351 
352 } /* postamble */
353 
354 
355 
356 /*
357  * PREAMBLE --process preamble, use random access
358  */
359 
360 void preamble(void)
361 {
362 
363  mseek(DVIfile, 0L, absolute); /* read the dvifile from the start */
364  if ((opcode = skipnops()) != PRE)
365  errorexit(nopre);
366  opcode = (int) get1(); /* check id in preamble, ignore rest of it */
367  if (opcode != VERSIONID)
368  errorexit(badid);
369  mseek(DVIfile, 12L, relative); /* numerator, denominator, magnification */
370  mseek(DVIfile, get1(), relative); /* skip job identification */
371 
372  return;
373 
374 } /* preamble */
375 
376 
377 
378 /*
379  * WALKPAGES -- process the pages in the DVI-file
380  */
381 
382 void walkpages(void)
383 {
384  register bool wantpage;
385 
386  pagecounter = 0L;
387  while ((opcode = skipnops()) != POST) {
388 
389  if (opcode != BOP) /* should be at start of page now */
390  errorexit(nobop);
391 
392  pagecounter++;
393  pagenr = sget4(); /* get TeX page number */
394  mseek(DVIfile, 36L, relative); /* skip page header */
395  backpointer = sget4(); /* get previous page offset */
396  if (pageswitchon)
397  wantpage = inlist(sequenceon ? pagecounter : pagenr);
398  else
399  wantpage = TRUE;
400 
401  if (wantpage) {
402  initpage();
403  dopage();
404  printpage();
405  }
406  else
407  skippage();
408  }
409 
410  return;
411 
412 } /* walkpages */
413 
414 
415 
416 /*
417  * INITPAGE -- Setup a new, empty page.
418  */
419 
420 void initpage(void)
421 {
422 
423  h = 0L; v = 0L; /* initialize coordinates */
424  x = 0L; w = 0L; y = 0L; z = 0L; /* initialize amounts */
425  sptr = 0; /* initialize stack */
426  currentline = my_getline(); /* initialize list of lines */
427  currentline->vv = 0L;
431  if (pageswitchon) {
432  if ((sequenceon ? pagecounter : pagenr) != firstpage->pag) {
433  if (noffd)
434  fprintf(output, "^L\n");
435  else
436  putc(FORM, output);
437  }
438  }
439  else
440  if (backpointer != -1) { /* not FORM at first page */
441  if (noffd)
442  fprintf(output, "^L\n");
443  else
444  putc(FORM, output);
445  }
446 
447  return;
448 
449 } /* initpage */
450 
451 
452 
453 /*
454  * DOPAGE -- Process the dvi file until an end-off-page.
455  * Build up a page image.
456  */
457 
458 void dopage(void)
459 {
460 
461  while ((opcode = (int) get1()) != EOP) { /* process page until eop */
462  if (opcode <= LASTCHAR)
463  dochar((unsigned char) opcode);
464  else if ((opcode >= FONT_00) && (opcode <= FONT_63))
465  setfont((long) opcode - FONT_00);
466  else if (opcode > POST_POST)
467  errorexit(illop);
468  else
469  switch (opcode) {
470  case SET1 : nttj ? jischar(get1()) : setchar(get1());break;
471  case SET2 : (asciip || uptex) ? dokanji(get2()) : setchar(get2()); break;
472  case SET3 : uptex ? dokanji(get3()) : setchar(get3()); break;
473  case SET4 : setchar(get4()); break;
474  case SET_RULE : { long height = sget4();
475  rule(MOVE, sget4(), height); break;
476  }
477  case PUT1 : putcharacter(get1()); break;
478  case PUT2 : putcharacter(get2()); break;
479  case PUT3 : putcharacter(get3()); break;
480  case PUT4 : putcharacter(get4()); break;
481  case PUT_RULE : { long height = sget4();
482  rule(STAY, sget4(), height); break;
483  }
484  case NOP : break; /* no-op */
485  case BOP : errorexit(bdbop); break;
486 /* case EOP : break; strange place to have EOP */
487  case PUSH : if (sptr >= stackmax) /* push */
488  errorexit(stkof);
489  stack[sptr].hh = h;
490  stack[sptr].vv = v;
491  stack[sptr].ww = w;
492  stack[sptr].xx = x;
493  stack[sptr].yy = y;
494  stack[sptr].zz = z;
495  sptr++;
496  break;
497  case POP : if (sptr-- == 0) /* pop */
498  errorexit(stkuf);
499  h = stack[sptr].hh;
500  v = stack[sptr].vv;
501  w = stack[sptr].ww;
502  x = stack[sptr].xx;
503  y = stack[sptr].yy;
504  z = stack[sptr].zz;
505  break;
506  case RIGHT1 : (void) horizontalmove(sget1()); break;
507  case RIGHT2 : (void) horizontalmove(sget2()); break;
508  case RIGHT3 : (void) horizontalmove(sget3()); break;
509  case RIGHT4 : (void) horizontalmove(sget4()); break;
510  case W0 : h += w; break;
511  case W1 : w = horizontalmove(sget1()); break;
512  case W2 : w = horizontalmove(sget2()); break;
513  case W3 : w = horizontalmove(sget3()); break;
514  case W4 : w = horizontalmove(sget4()); break;
515  case X0 : h += x; break;
516  case X1 : x = horizontalmove(sget1()); break;
517  case X2 : x = horizontalmove(sget2()); break;
518  case X3 : x = horizontalmove(sget3()); break;
519  case X4 : x = horizontalmove(sget4()); break;
520  case DOWN1 : v += sget1(); break;
521  case DOWN2 : v += sget2(); break;
522  case DOWN3 : v += sget3(); break;
523  case DOWN4 : v += sget4(); break;
524  case Y0 : v += y; break;
525  case Y1 : y = sget1(); v += y; break;
526  case Y2 : y = sget2(); v += y; break;
527  case Y3 : y = sget3(); v += y; break;
528  case Y4 : y = sget4(); v += y; break;
529  case Z0 : v += z; break;
530  case Z1 : z = sget1(); v += z; break;
531  case Z2 : z = sget2(); v += z; break;
532  case Z3 : z = sget3(); v += z; break;
533  case Z4 : z = sget4(); v += z; break;
534  case FNT1 :
535  case FNT2 :
536  case FNT3 :
537  case FNT4 : setfont(num(opcode - FNT1 + 1));
538  break;
539  case XXX1 : mseek(DVIfile, get1(), relative); break;
540  case XXX2 : mseek(DVIfile, get2(), relative); break;
541  case XXX3 : mseek(DVIfile, get3(), relative); break;
542  case XXX4 : mseek(DVIfile, get4(), relative); break;
543  case FNT_DEF1 :
544  case FNT_DEF2 :
545  case FNT_DEF3 :
546  case FNT_DEF4 : fontdef(opcode - FNT_DEF1 + 1);
547  break;
548  case PRE : errorexit(bdpre); break;
549  case POST : errorexit(bdpst); break;
550  case POST_POST: errorexit(bdpp); break;
551  }
552  }
553 
554  return;
555 
556 } /* dopage */
557 
558 
559 
560 /*
561  * SKIPPAGE -- Scan the dvi file until an end-off-page.
562  * Skip this page.
563  */
564 
565 void skippage(void)
566 {
567  register int opcode;
568 
569  while ((opcode = (int) get1()) != EOP) {
570  if (opcode > POST_POST)
571  errorexit(illop);
572  else
573  switch (opcode) {
574  case SET1 :
575  case PUT1 :
576  case RIGHT1 :
577  case W1 :
578  case X1 :
579  case DOWN1 :
580  case Y1 :
581  case Z1 : /* assume FNT change can also be skipped */
582  case FNT1 : mseek(DVIfile, 1L, relative); break;
583  case SET2 :
584  case PUT2 :
585  case RIGHT2 :
586  case W2 :
587  case X2 :
588  case DOWN2 :
589  case Y2 :
590  case Z2 :
591  case FNT2 : mseek(DVIfile, 2L, relative); break;
592  case SET3 :
593  case PUT3 :
594  case RIGHT3 :
595  case W3 :
596  case X3 :
597  case DOWN3 :
598  case Y3 :
599  case Z3 :
600  case FNT3 : mseek(DVIfile, 3L, relative); break;
601  case SET4 :
602  case PUT4 :
603  case RIGHT4 :
604  case W4 :
605  case X4 :
606  case DOWN4 :
607  case Y4 :
608  case Z4 :
609  case FNT4 : mseek(DVIfile, 4L, relative); break;
610  case SET_RULE :
611  case PUT_RULE : mseek(DVIfile, 8L, relative); break;
612  case BOP : errorexit(bdbop); break;
613  case XXX1 : mseek(DVIfile, get1(), relative); break;
614  case XXX2 : mseek(DVIfile, get2(), relative); break;
615  case XXX3 : mseek(DVIfile, get3(), relative); break;
616  case XXX4 : mseek(DVIfile, get4(), relative); break;
617  case FNT_DEF1 :
618  case FNT_DEF2 :
619  case FNT_DEF3 :
620  case FNT_DEF4 : fontdef(opcode - FNT_DEF1 + 1); break;
621  case PRE : errorexit(bdpre); break;
622  case POST : errorexit(bdpst); break;
623  case POST_POST: errorexit(bdpp); break;
624  }
625  }
626 
627  return;
628 
629 } /* skippage */
630 
631 
632 
633 /*
634  * PRINTPAGE -- 'end of page', writes lines of page to output file
635  */
636 
637 void printpage(void)
638 {
639  register int i, j, k;
640  register long ch, mbch;
641  unsigned char buff[4];
642 
643  if (sptr != 0)
644  fprintf(stderr, "dvi2tty: warning - stack not empty at eop.\n");
647  if (currentline != firstline) {
649  if (foo > 3)
650  foo = 3; /* linespacings not too large */
651  for (i = 1; i <= (int) foo; i++)
652  putc('\n', output);
653  }
655  foo = ttywidth - 2;
656  for (i = firstcolumn, j = 1; i <= currentline->charactercount;
657  i++, j++) {
659 
660  if (japan && !(ch & IS_UNICODE)) {
661  if (ch > 127) {
662  for (k = 0; k < 4; k++) {
663  if (i - leftmargin + k < LINELEN+1)
664  buff[k] = currentline->text[i - leftmargin + k];
665  else buff[k] = '\0';
666  }
667  kanji1 = multistrlen(buff, 4, 0) - 1;
668  }
669  else kanji1 = 0;
670  if (kanji1 && (j + kanji1 > (int) foo) &&
671  (currentline->charactercount > i+1)) {
672  putc2('*', output);
673  putc2('\n', output); /* if line to large */
674  putc2(' ', output);
675  putc2('*', output); /* mark output */
676  j = 2;
677  }
678  }
679 
680  if (ch >= SPACE || allchar) {
681  if (utf8 && (ch & IS_UNICODE)) {
682 #ifdef WIN32
683  wchar_t wch;
684  HANDLE hStdout;
685  DWORD ret;
686  const int fd = fileno(output);
687 
688  if ((fd == fileno(stdout) || fd == fileno(stderr)) && _isatty(fd)) {
689  if (fd == fileno(stdout))
690  hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
691  else
692  hStdout = GetStdHandle(STD_ERROR_HANDLE);
693 
694  wch=(wchar_t)(ch & MAX_UNICODE); /* do not expect over BMP */
695  WriteConsoleW(hStdout, &wch, 1, &ret, NULL);
696 
697  } else {
698 #endif
699  mbch = UCStoUTF8(ch & MAX_UNICODE);
700  if (BYTE1(mbch) != 0) putc((unsigned char)BYTE1(mbch), output);
701  if (BYTE2(mbch) != 0) putc((unsigned char)BYTE2(mbch), output);
702  if (BYTE3(mbch) != 0) putc((unsigned char)BYTE3(mbch), output);
703  /* always */ putc((unsigned char)BYTE4(mbch), output);
704 #ifdef WIN32
705  }
706 #endif
707  }
708  else if (japan) {
709  for (k = 0; k < kanji1; k++) {
710  putc2(ch, output);
711  i++; j++;
713  }
714  putc2(ch, output);
715  }
716  else
717  putc(ch, output);
718  }
719  if ((j > (int) foo) && (currentline->charactercount > i+1)) {
720  if (japan) {
721  putc2('*', output);
722  putc2('\n', output); /* if line to large */
723  putc2(' ', output);
724  putc2('*', output); /* mark output */
725  }
726  else {
727  fprintf(output, "*\n"); /* if line to large */
728  fprintf(output, " *"); /* mark output */
729  }
730  j = 2;
731  }
732  }
733  }
734  if (japan)
735  putc2('\n', output);
736  else
737  putc('\n', output);
738  }
739 
741  while (currentline->next != nil) {
744  }
745  free(currentline); /* free last line */
746  currentline = nil;
747 
748  return;
749 
750 } /* printpage */
751 
752 
753 
754 /*
755  * INLIST -- return true if pagenr is in the list of pages to be printed.
756  */
757 
758 bool inlist(long pagenr)
759 {
760 
761  while ((currentpage->pag < 0) && (currentpage->pag != pagenr) &&
762  !currentpage->all && (currentpage->nxt != nil))
764  if ((currentpage->all && (pagenr < currentpage->pag)) ||
765  (currentpage->pag == pagenr))
766  return TRUE;
767  else if (pagenr > 0) {
768  while ((currentpage->pag < pagenr) && (currentpage->nxt != nil))
770  if (currentpage->pag == pagenr)
771  return TRUE;
772  }
773 
774  return FALSE;
775 
776 } /* inlist */
777 
778 
779 
780 /*
781  * RULE -- Output a rule (vertical or horizontal).
782  * Increment h if moving is true.
783  */
784 
785 void rule(bool moving, long rulewt, long ruleht)
786 {
787 
788  register char ch; /* character to set rule with */
789  register long saveh = 0, savev;
790  /* rule -- starts up the recursive routine */
791  if (!moving)
792  saveh = h;
793  if ((ruleht <= 0) || (rulewt <= 0))
794  h += rulewt;
795  else {
796  savev = v;
797  if ((ruleht / rulewt) > 0) /* value < 1 truncates to 0 */
798  ch = '|';
799  else if (ruleht > (lineheight / 2))
800  ch = '=';
801  else
802  ch = '_';
803  ruleaux(rulewt, ruleht, ch);
804  v = savev;
805  }
806  if (!moving)
807  h = saveh;
808 
809  return;
810 
811 } /* rule */
812 
813 
814 
815 /*
816  * RULEAUX -- do the actual output for the rule recursively.
817  */
818 
819 void ruleaux(long rulewt, long ruleht, char ch)
820 {
821  register long wt, lmh, rmh;
822 
823  wt = rulewt;
824  lmh = h; /* save left margin */
825  if (h < 0) { /* let rules that start at negative h */
826  wt -= h; /* start at coordinate 0, but let it */
827  h = 0; /* have the right length */
828  }
829  while (wt > 0) { /* output the part of the rule that */
830  rmh = h; /* goes on this line */
831  outchar(ch);
832  wt -= (h-rmh); /* decrease the width left on line */
833  }
834  ruleht -= lineheight; /* decrease the height */
835  if (ruleht > lineheight) { /* still more vertical? */
836  rmh = h; /* save current h (right margin) */
837  h = lmh; /* restore left margin */
838  v -= (lineheight + lineheight / 10);
839  ruleaux(rulewt, ruleht, ch);
840  h = rmh; /* restore right margin */
841  }
842 
843  return;
844 
845 } /* ruleaux */
846 
847 
848 
849 /*
850  * HORIZONTALMOVE -- Move the h pointer by amount.
851  */
852 
853 long horizontalmove(long amount)
854 {
855 
856  if (labs(amount) > charwidth / 4L) {
857  foo = 3*charwidth / 4;
858  if (amount > 0)
859  amount = ((amount+foo) / charwidth) * charwidth;
860  else
861 #if defined(VMS)
862  amount = (ROUND( (float) (amount-foo) / charwidth) + 1)* charwidth;
863 #else
864  amount = ((amount-foo) / charwidth) * charwidth;
865 #endif
866  h += amount;
867  return amount;
868  }
869  else
870  return 0;
871 
872 } /* horizontalmove */
873 
874 
875 
876 /*
877  * SKIPNOPS -- Return first non NOP opcode.
878  */
879 
880 int skipnops(void)
881 {
882  register int opcode;
883 
884  while ((opcode = (int) num(1)) == NOP);
885 
886  return opcode;
887 
888 } /* skipnops */
889 
890 
891 
892 /*
893  * GETLINE -- Returns an initialized line-object
894  */
895 
897 {
898  register int i;
899  register linetype *temp;
900 
901  if ((temp = (linetype *) malloc(sizeof(linetype))) == NULL)
902  errorexit(lnerq);
903  temp->charactercount = leftmargin - 1;
904  temp->prev = nil;
905  temp->next = nil;
906  for (i = 0; i < LINELEN; i++)
907  temp->text[i] = ' ';
908  temp->text[i] = '\0';
909 
910  return temp;
911 
912 } /* my_getline */
913 
914 
915 
916 /*
917  * FINDLINE -- Find best fit line were text should go
918  * and generate new line if needed.
919  */
920 
922 {
923  register linetype *temp;
924  register long topd, botd;
925 
926  if (v <= firstline->vv) { /* above first line */
927  if (firstline->vv - v > lineheight) {
928  temp = my_getline();
929  temp->next = firstline;
930  firstline->prev = temp;
931  temp->vv = v;
932  firstline = temp;
933  }
934  return firstline;
935  }
936 
937  if (v >= lastline->vv) { /* below last line */
938  if (v - lastline->vv > lineheight) {
939  temp = my_getline();
940  temp->prev = lastline;
941  lastline->next = temp;
942  temp->vv = v;
943  lastline = temp;
944  }
945  return lastline;
946  }
947 
948  temp = lastline; /* in between two lines */
949  while ((temp->vv > v) && (temp != firstline))
950  temp = temp->prev;
951 
952  /* temp->vv < v < temp->next->vv --- temp is above, temp->next is below */
953  topd = v - temp->vv;
954  botd = temp->next->vv - v;
955  if ((topd < lineheight) || (botd < lineheight)) {
956  if (topd < botd) /* take best fit */
957  return temp;
958  else
959  return temp->next;
960  }
961 
962  /* no line fits suitable, generate a new one */
964  currentline->next = temp->next;
965  currentline->prev = temp;
966  temp->next->prev = currentline;
967  temp->next = currentline;
968  currentline->vv = v;
969 
970  return currentline;
971 
972 } /* findline */
973 
974 
975 
976 /*
977  * NUM --
978  */
979 
980 unsigned long num(int size)
981 {
982  register int i;
983  register unsigned long x = 0;
984 
985  for (i = size; i > 0; i--)
986  x = (x << 8) + (unsigned) getc(DVIfile);
987 
988  return x;
989 
990 } /* num */
991 
992 
993 /*
994  * SNUM --
995  */
996 
997 long snum(int size)
998 {
999  register int i;
1000  register long x;
1001 
1002  x = getc(DVIfile);
1003  if (x & 0x80)
1004  x -= 0x100;
1005  for (i = size - 1; i > 0; i--)
1006  x = (x << 8) + (unsigned) getc(DVIfile);
1007 
1008  return x;
1009 
1010 } /* snum */
1011 
1012 
1013 
1014 /*
1015  * DOUNICHAR -- Process a Unicode character
1016  */
1017 
1018 void dounichar(long ch)
1019 {
1020  unsigned char c[4] = {0}, *cc;
1021 
1022  if (noligaturefi && 0xFB00<=ch && ch<=0xFB04) {
1023  switch (ch) {
1024  case 0xFB00: strcpy((char*)c,"ff"); break;
1025  case 0xFB01: strcpy((char*)c,"fi"); break;
1026  case 0xFB02: strcpy((char*)c,"fl"); break;
1027  case 0xFB03: strcpy((char*)c,"ffi"); break;
1028  case 0xFB04: strcpy((char*)c,"ffl"); break;
1029  }
1030  cc=c;
1031  while (*cc) { outchar((long)*cc); cc++; }
1032  return;
1033  }
1034  if (ch>0x7F)
1035  outchar((long)(ch | IS_UNICODE));
1036  else {
1037  outchar((long)ch);
1038  }
1039 
1040  return;
1041 
1042 } /* dounichar */
1043 
1044 
1045 /*
1046  * DOKANJI -- Process a kanji character opcode.
1047  */
1048 
1049 void dokanji(long ch)
1050 {
1051  long i;
1052  i = toBUFF(fromDVI(ch));
1053 
1054  kanji1 = 3;
1055  if (BYTE1(i) != 0) outchar((long)BYTE1(i));
1056  kanji1 = 2;
1057  if (BYTE2(i) != 0) outchar((long)BYTE2(i));
1058  kanji1 = 1;
1059  if (BYTE3(i) != 0) outchar((long)BYTE3(i));
1060  kanji1 = 0;
1061  /* always */ outchar((long)BYTE4(i));
1062 
1063  return;
1064 
1065 } /* dokanji */
1066 
1067 
1068 
1069 /*
1070  * DOCHAR -- Process a character opcode.
1071  */
1072 
1073 void dochar(unsigned char ch)
1074 {
1075  char flag;
1076  flag = fnt->flags;
1077 
1078  if (nttj && fnt->fontnum)
1079  jischar((long) ch);
1080  else if (symbolfont)
1081  symchar(ch);
1082  else if (mifont)
1083  michar(ch);
1084  else if (flag == T1FONT)
1085  t1char(ch);
1086  else if (flag == TS1FONT)
1087  ts1char(ch);
1088  else if (flag == OT2FONT)
1089  ot2char(ch);
1090  else if (flag == T2AFONT || flag == T2BFONT ||
1091  flag == T2CFONT || flag == X2FONT)
1092  t2char(flag, ch);
1093  else
1094  normchar(flag, ch);
1095 
1096  return;
1097 
1098 } /* dochar */
1099 
1100 
1101 
1102 /*
1103  * SYMCHAR -- Process a character opcode for a symbol font.
1104  */
1105 
1106 void symchar(unsigned char ch)
1107 {
1108  unsigned char c[4] = {0}, *cc;
1109  long ucs;
1110 
1111  ucs = oms_to_ucs[ch];
1112  if (utf8) {
1113  dounichar(ucs);
1114  return;
1115  }
1116  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1117  outchar(ucs);
1118  return;
1119  }
1120 
1121  switch (ch) { /* can do a lot more on MSDOS/latin1/unicode machines ... */
1122  case 0: c[0] = '-'; break;
1123  case 1: c[0] = '.'; break;
1124  case 2: c[0] = 'x'; break;
1125  case 3: c[0] = '*'; break;
1126  case 4: c[0] = '/'; break;
1127  case 6: c[0] = '+'; c[1] = '-'; break;
1128  case 7: c[0] = '-'; c[1] = '+'; break;
1129  case 13: c[0] = 'O'; break;
1130  case 14: c[0] = 'O'; break;
1131  case 15: c[0] = 'o'; break;
1132  case 24: c[0] = '~'; break;
1133  case 28: c[0] = '<'; c[1] = '<'; break;
1134  case 29: c[0] = '>'; c[1] = '>'; break;
1135  case 32: c[0] = '<'; c[1] = '-'; break;
1136  case 33: c[0] = '-'; c[1] = '>'; break;
1137  case 34: c[0] = '^'; break;
1138  case 35: c[0] = 'v'; break;
1139  case 36: c[0] = '<'; c[1] = '-'; c[2] = '>'; break;
1140  case 40: c[0] = '<'; c[1] = '='; break;
1141  case 41: c[0] = '='; c[1] = '>'; break;
1142  case 42: c[0] = '^'; break;
1143  case 43: c[0] = 'v'; break;
1144  case 44: c[0] = '<'; c[1] = '='; c[2] = '>'; break;
1145  case 60: c[0] = 'R'; c[1] = 'e'; break;
1146  case 61: c[0] = 'I'; c[1] = 'm'; break;
1147  case 102: c[0] = '{'; break;
1148  case 103: c[0] = '}'; break;
1149  case 104: c[0] = '<'; break;
1150  case 105: c[0] = '>'; break;
1151  case 106: c[0] = '|'; break;
1152  case 107: c[0] = '|'; c[1] = '|'; break;
1153  case 110: c[0] = '\\'; break;
1154  case 120: c[0] = 'S'; break;
1155  case 121: c[0] = '*'; break;
1156  case 122: c[0] = '*'; c[1] = '*'; break;
1157  case 123: c[0] = 'P'; break;
1158 
1159  default: c[0] = '#';
1160  }
1161 
1162  cc=c;
1163  while (*cc) { outchar(*cc); cc++; }
1164 
1165  return;
1166 
1167 } /* symchar */
1168 
1169 
1170 
1171 /*
1172  * MICHAR -- Process a character opcode for OML font.
1173  */
1174 
1175 void michar(unsigned char ch)
1176 {
1177  unsigned char c[4] = {0}, *cc;
1178  long ucs;
1179 
1180  if (allchar) {
1181  outchar(ch);
1182  return;
1183  }
1184  ucs = oml_to_ucs[ch];
1185  if (utf8) {
1186  dounichar(ucs);
1187  return;
1188  }
1189  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1190  outchar(ucs);
1191  return;
1192  }
1193 
1194  switch (ch) {
1195  case 0x3a: c[0] = '.'; break; /* . */
1196  case 0x3b: c[0] = ','; break; /* , */
1197  case 0x3d: c[0] = '/'; break; /* / */
1198  case 0x3e: c[0] = '*'; break; /* \star */
1199  case 0x40: c[0] = 'd'; break; /* \partial */
1200  case 0x60: c[0] = 'l'; break; /* \ell */
1201  case 0x7b: c[0] = 'i'; break; /* dotless i */
1202  case 0x7c: c[0] = 'j'; break; /* dotless j */
1203  case 0x7d: c[0] = 'P'; break; /* \wp */
1204 
1205  default : c[0] = '#';
1206  }
1207 
1208  cc=c;
1209  while (*cc) { outchar(*cc); cc++; }
1210 
1211  return;
1212 
1213 } /* michar */
1214 
1215 
1216 /*
1217  * NORMCHAR -- Process a character opcode for a normal font.
1218  */
1219 
1220 void normchar(char flag, unsigned char ch)
1221 {
1222  unsigned char c[4] = {0}, *cc;
1223  const unsigned short *tex_to_ucs;
1224  long ucs;
1225 
1226  if (allchar) {
1227  outchar(ch);
1228  return;
1229  }
1230  if (!accent) {
1231  switch (ch) {
1232  case 18 : /* grave from \` */
1233  case 19 : /* acute from \' */
1234  case 20 : /* caron from \v */
1235  case 21 : /* breve from \u */
1236  case 22 : /* macron from \= */
1237  case 23 : /* ring above from \r */
1238  case 24 : /* cedilla from \c */
1239  case 32 : /* stroke i.e. \L,\l */
1240  case 94 : /* circumflex from \^ */
1241  case 126 : /* tilde from \~ */
1242  case 127 : /* diaeresis from \" */
1243  return;
1244  case 125 : /* double acute from \H */
1245  case 95 : /* dot from \. */
1246  if (!ttfont) return;
1247  }
1248  }
1249  switch (flag) {
1250  case TTFONT : tex_to_ucs=tt_to_ucs; break;
1251  default : tex_to_ucs=ot1_to_ucs;
1252  }
1253  ucs = tex_to_ucs[ch];
1254  if (utf8) {
1255  dounichar(ucs);
1256  return;
1257  }
1258  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1259  outchar(ucs);
1260  return;
1261  }
1262 
1263  switch (ch) {
1264  case 11 : if (ttfont)
1265  c[0] = '^'; /* up symbol */
1266  else {
1267  c[0] = 'f'; c[1] = 'f'; /* ligature */
1268  }
1269  break;
1270  case 12 : if (ttfont)
1271  c[0] = 'v'; /* low symbol */
1272  else {
1273  c[0] = 'f'; c[1] = 'i'; /* ligature */
1274  }
1275  break;
1276  case 13 : if (ttfont)
1277  c[0] = '`';
1278  else {
1279  c[0] = 'f'; c[1] = 'l'; /* ligature */
1280  }
1281  break;
1282  case 14 : if (ttfont)
1283  c[0] = 'i'; /* spanish ! */
1284  else {
1285  c[0] = 'f'; c[1] = 'f';
1286  c[2] = 'i'; /* ligature */
1287  }
1288  break;
1289  case 15 : if (ttfont)
1290  c[0] = '.'; /* spanish ? */
1291  else {
1292  c[0] = 'f'; c[1] = 'f';
1293  c[2] = 'l'; /* ligature */
1294  }
1295  break;
1296  case 16 : c[0] = 'i'; break;
1297  case 17 : c[0] = 'j'; break;
1298  case 25 : if (latin1)
1299  c[0] = 0xdf;
1300  else {
1301  c[0] = 's'; c[1] = 's';
1302  }
1303  break; /* German double s */
1304  case 26 : if (latin1)
1305  c[0] = 0xe6;
1306  else {
1307  c[0] = 'a'; c[1] = 'e';
1308  }
1309  break; /* Dane/Norw ae */
1310  case 27 : c[0] = 'o'; c[1] = 'e';
1311  break; /* Dane/Norw oe */
1312  case 28 : if (scascii)
1313  c[0] = '|';
1314  else if (latin1)
1315  c[0] = 0xf8;
1316  else
1317  c[0] = 'o';
1318  break; /* Dane/Norw /o */
1319  case 29 : if (latin1)
1320  c[0] = 0xc6;
1321  else {
1322  c[0] = 'A'; c[1] = 'E';
1323  }
1324  break; /* Dane/Norw AE */
1325  case 30 : c[0] = 'O'; c[1] = 'E';
1326  break; /* Dane/Norw OE */
1327  case 31 : if (scascii)
1328  c[0] = '\\';
1329  else if (latin1)
1330  c[0] = 0xd8;
1331  else
1332  c[0] = 'O';
1333  break; /* Dane/Norw /O */
1334  case 60 : if (ttfont)
1335  c[0] = ch; /* '>' */
1336  else if (latin1)
1337  c[0] = 0xa1;
1338  else
1339  c[0] = '!';
1340  break; /* inverted ! */
1341  case 62 : if (ttfont)
1342  c[0] = ch; /* '<' */
1343  else if (latin1)
1344  c[0] = 0xbf;
1345  else
1346  c[0] = '?';
1347  break; /* inverted ? */
1348  case 32 : c[0] = ttfont ? ch : '_'; break; /* underlined blank */
1349  case 92 : c[0] = ttfont ? ch : '"'; break; /* \ from `` */
1350  case 123 : if (ttfont)
1351  c[0] = ch; /* { */
1352  else {
1353  c[0] = '-'; c[1] = '-'; /* -- */
1354  }
1355  break;
1356  case 124 : if (ttfont)
1357  c[0] = ch; /* | */
1358  else {
1359  c[0] = '-'; c[1] = '-'; /* --- */
1360  c[2] = '-';
1361  }
1362  break;
1363  case 125 : if (ttfont)
1364  c[0] = ch; /* } */
1365  else
1366  c[0] = '"'; /* double acute from \H */
1367  break;
1368  case 34 : /* " */
1369  case 39 : /* ' */
1370  case 96 : c[0] = ch; break; /* ` */
1371 
1372  /* diacritical marks */
1373  case 18 : c[0] = '`' ; break; /* grave from \` */
1374  case 19 : c[0] = latin1 ? 0xb4 : '\''; break;
1375  /* acute from \' */
1376  case 20 : c[0] = '~' ; break; /* caron from \v */
1377  case 21 : c[0] = '~' ; break; /* breve from \u */
1378  case 22 : c[0] = '~' ; break; /* macron from \= */
1379  case 23 : c[0] = latin1 ? 0xb0 : '~'; break;
1380  /* ring above from \r */
1381  case 24 : c[0] = latin1 ? 0xb8 : ','; break;
1382  /* cedilla from \c */
1383  case 94 : c[0] = '^' ; break; /* circumflex from \^ */
1384  case 95 : c[0] = !ttfont ? '.' : ch; break;
1385  /* dot from \. */
1386  case 126 : c[0] = '~' ; break; /* tilde from \~ */
1387  case 127 : c[0] = '"' ; break; /* diaeresis from \" */
1388 
1389  default : c[0] = '#';
1390  }
1391 
1392  cc=c;
1393  while (*cc) { outchar(*cc); cc++; }
1394 
1395  return;
1396 
1397 } /* normchar */
1398 
1399 
1400 /*
1401  * T1CHAR -- Process a character opcode for a T1 encoding font.
1402  */
1403 
1404 void t1char(unsigned char ch)
1405 {
1406  unsigned char c[4] = {0}, *cc;
1407  long ucs;
1408 
1409  if (allchar) {
1410  outchar(ch);
1411  return;
1412  }
1413  if (!accent) {
1414  switch (ch) {
1415  case 0x00: /* grave from \` */
1416  case 0x01: /* acute from \' */
1417  case 0x02: /* circumflex from \^ */
1418  case 0x03: /* tilde from \~ */
1419  case 0x04: /* diaeresis from \" */
1420  case 0x05: /* double acute from \H */
1421  case 0x06: /* ring above from \r */
1422  case 0x07: /* caron from \v */
1423  case 0x08: /* breve from \u */
1424  case 0x09: /* macron from \= */
1425  case 0x0a: /* dot from \. */
1426  case 0x0b: /* cedilla from \c */
1427  case 0x0c: /* ogonek from \k */
1428  return;
1429  }
1430  }
1431  if (ch==0xdf) {
1432  outchar('S'); outchar('S'); /* SS */
1433  return;
1434  }
1435  ucs = t1_to_ucs[ch];
1436  if (utf8) {
1437  dounichar(ucs);
1438  return;
1439  }
1440  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1441  outchar(ucs);
1442  return;
1443  }
1444 
1445  switch (ch) {
1446  case 0x17: return; /* \textcompwordmark */
1447  case 0x0d: /* \quotesinglbase */
1448  case 0x27: /* \textquoteright */
1449  case 0x60: c[0] = '\''; break; /* \textquoteleft */
1450  case 0x10: /* \textquotedblleft */
1451  case 0x11: /* \textquotedblright */
1452  case 0x12: c[0] = '"'; break; /* \quotedblbase */
1453  case 0x0e: c[0] = '<'; break; /* \guilsinglleft */
1454  case 0x0f: c[0] = '>'; break; /* \guilsinglright */
1455  case 0x13: c[0] = '<'; c[1] = '<'; /* \guillemotleft */
1456  break;
1457  case 0x14: c[0] = '>'; c[1] = '>'; /* \guillemotright */
1458  break;
1459  case 0x15: c[0] = '-'; c[1] = '-'; /* \textendash */
1460  break;
1461  case 0x16: c[0] = '-'; c[1] = '-'; /* \textemdash */
1462  c[2] = '-'; break;
1463  case 0x20: c[0] = '_'; break; /* \textvisiblespace */
1464  case 0x7f: c[0] = '-'; break; /* - */
1465  case 0x19: c[0] = 'i'; break; /* dotless i */
1466  case 0x1a: c[0] = 'j'; break; /* dotless j */
1467  case 0x1b: c[0] = 'f'; c[1] = 'f'; /* ligature */
1468  break;
1469  case 0x1c: c[0] = 'f'; c[1] = 'i'; /* ligature */
1470  break;
1471  case 0x1d: c[0] = 'f'; c[1] = 'l'; /* ligature */
1472  break;
1473  case 0x1e: c[0] = 'f'; c[1] = 'f';
1474  c[2] = 'i'; /* ligature */
1475  break;
1476  case 0x1f: c[0] = 'f'; c[1] = 'f';
1477  c[2] = 'l'; /* ligature */
1478  break;
1479  case 0xff: c[0] = 's'; c[1] = 's';
1480  break; /* German double s */
1481  case 0xe6: c[0] = 'a'; c[1] = 'e';
1482  break; /* Dane/Norw ae */
1483  case 0xf7: c[0] = 'o'; c[1] = 'e';
1484  break; /* Dane/Norw oe */
1485  case 0xf8: c[0] = '/'; c[1] = 'o';
1486  break; /* Dane/Norw /o */
1487  case 0xc6: c[0] = 'A'; c[1] = 'E';
1488  break; /* Dane/Norw AE */
1489  case 0xd7: c[0] = 'O'; c[1] = 'E';
1490  break; /* Dane/Norw OE */
1491  case 0xd8: c[0] = '/'; c[1] = 'O';
1492  break; /* Dane/Norw /O */
1493  case 0x9c: c[0] = 'I'; c[1] = 'J';
1494  break; /* IJ */
1495  case 0xbc: c[0] = 'i'; c[1] = 'j';
1496  break; /* ij */
1497  case 0x8d: c[0] = 'N'; c[1] = 'G';
1498  break; /* ENG */
1499  case 0xad: c[0] = 'n'; c[1] = 'g';
1500  break; /* eng */
1501  case 0xde: c[0] = 'T'; c[1] = 'H';
1502  break; /* THORN */
1503  case 0xfe: c[0] = 't'; c[1] = 'h';
1504  break; /* thorn */
1505  case 0x80: c[0] = '~'; c[1] ='A'; break; /* uA */
1506  case 0x81: c[0] = ','; c[1] ='A'; break; /* ,A */
1507  case 0x82: c[0] = '\''; c[1] ='C'; break; /* 'C */
1508  case 0x83: c[0] = '~'; c[1] ='C'; break; /* vC */
1509  case 0x84: c[0] = '~'; c[1] ='D'; break; /* vD */
1510  case 0x85: c[0] = '~'; c[1] ='E'; break; /* vE */
1511  case 0x86: c[0] = ','; c[1] ='E'; break; /* ,E */
1512  case 0x87: c[0] = '~'; c[1] ='G'; break; /* uG */
1513  case 0x88: c[0] = '\''; c[1] ='L'; break; /* 'L */
1514  case 0x89: c[0] = '\''; c[1] ='L'; break; /* 'L */
1515  case 0x8a: c[0] = '-'; c[1] ='L'; break; /* -L */
1516  case 0x8b: c[0] = '\''; c[1] ='N'; break; /* 'N */
1517  case 0x8c: c[0] = '~'; c[1] ='N'; break; /* vN */
1518  case 0x8e: c[0] = '"'; c[1] ='O'; break; /* "O */
1519  case 0x8f: c[0] = '\''; c[1] ='R'; break; /* 'R */
1520  case 0x90: c[0] = '~'; c[1] ='R'; break; /* vR */
1521  case 0x91: c[0] = '\''; c[1] ='S'; break; /* 'S */
1522  case 0x92: c[0] = '~'; c[1] ='S'; break; /* vS */
1523  case 0x93: c[0] = ','; c[1] ='S'; break; /* ,S */
1524  case 0x94: c[0] = '~'; c[1] ='T'; break; /* vT */
1525  case 0x95: c[0] = ','; c[1] ='T'; break; /* ,T */
1526  case 0x96: c[0] = '"'; c[1] ='U'; break; /* "U */
1527  case 0x97: c[0] = '\''; c[1] ='U'; break; /* oU */
1528  case 0x98: c[0] = '"'; c[1] ='Y'; break; /* "Y */
1529  case 0x99: c[0] = '\''; c[1] ='Z'; break; /* 'Z */
1530  case 0x9a: c[0] = '~'; c[1] ='Z'; break; /* vZ */
1531  case 0x9b: c[0] = '\''; c[1] ='Z'; break; /* .Z */
1532  case 0x9d: c[0] = '\''; c[1] ='I'; break; /* .I */
1533  case 0x9e: c[0] = '-'; c[1] ='d'; break; /* -d */
1534  case 0x9f: c[0] = 'S'; break; /* section sign */
1535 
1536  case 0xa0: c[0] = '~'; c[1] ='a'; break; /* ua */
1537  case 0xa1: c[0] = ','; c[1] ='a'; break; /* ,a */
1538  case 0xa2: c[0] = '\''; c[1] ='c'; break; /* 'c */
1539  case 0xa3: c[0] = '~'; c[1] ='c'; break; /* vc */
1540  case 0xa4: c[0] = '\''; c[1] ='d'; break; /* 'd */
1541  case 0xa5: c[0] = '~'; c[1] ='e'; break; /* ve */
1542  case 0xa6: c[0] = ','; c[1] ='e'; break; /* ,e */
1543  case 0xa7: c[0] = '~'; c[1] ='g'; break; /* ug */
1544  case 0xa8: c[0] = '\''; c[1] ='l'; break; /* 'l */
1545  case 0xa9: c[0] = '\''; c[1] ='l'; break; /* 'l */
1546  case 0xaa: c[0] = '-'; c[1] ='l'; break; /* -l */
1547  case 0xab: c[0] = '\''; c[1] ='n'; break; /* 'n */
1548  case 0xac: c[0] = '~'; c[1] ='n'; break; /* vn */
1549  case 0xae: c[0] = '"'; c[1] ='o'; break; /* "o */
1550  case 0xaf: c[0] = '\''; c[1] ='r'; break; /* 'r */
1551 
1552  case 0xb0: c[0] = '~'; c[1] ='r'; break; /* vr */
1553  case 0xb1: c[0] = '\''; c[1] ='s'; break; /* 's */
1554  case 0xb2: c[0] = '~'; c[1] ='s'; break; /* vs */
1555  case 0xb3: c[0] = ','; c[1] ='s'; break; /* ,s */
1556  case 0xb4: c[0] = '\''; c[1] ='t'; break; /* 't */
1557  case 0xb5: c[0] = ','; c[1] ='t'; break; /* ,t */
1558  case 0xb6: c[0] = '"'; c[1] ='u'; break; /* "u */
1559  case 0xb7: c[0] = '\''; c[1] ='u'; break; /* ou */
1560  case 0xb8: c[0] = '"'; c[1] ='y'; break; /* "y */
1561  case 0xb9: c[0] = '\''; c[1] ='z'; break; /* 'z */
1562  case 0xba: c[0] = '~'; c[1] ='z'; break; /* vz */
1563  case 0xbb: c[0] = '\''; c[1] ='z'; break; /* .z */
1564 
1565  case 0xbd: c[0] = '!'; break; /* inversed ! */
1566  case 0xbe: c[0] = '?'; break; /* inversed ? */
1567  case 0xbf: c[0] = 'L'; break; /* pound sign */
1568 
1569  case 0xc0: c[0] = '`'; c[1] ='A'; break; /* `A */
1570  case 0xc1: c[0] = '\''; c[1] ='A'; break; /* 'A */
1571  case 0xc2: c[0] = '^'; c[1] ='A'; break; /* ^A */
1572  case 0xc3: c[0] = '~'; c[1] ='A'; break; /* ~A */
1573  case 0xc4: c[0] = '"'; c[1] ='A'; break; /* "A */
1574  case 0xc5: c[0] = 'A'; c[1] ='A'; break; /* oA */
1575  case 0xc7: c[0] = ','; c[1] ='C'; break; /* ,C */
1576  case 0xc8: c[0] = '`'; c[1] ='E'; break; /* `E */
1577  case 0xc9: c[0] = '\''; c[1] ='E'; break; /* 'E */
1578  case 0xca: c[0] = '^'; c[1] ='E'; break; /* ^E */
1579  case 0xcb: c[0] = '^'; c[1] ='E'; break; /* "E */
1580  case 0xcc: c[0] = '`'; c[1] ='I'; break; /* `I */
1581  case 0xcd: c[0] = '\''; c[1] ='I'; break; /* 'I */
1582  case 0xce: c[0] = '^'; c[1] ='I'; break; /* ^I */
1583  case 0xcf: c[0] = '"'; c[1] ='I'; break; /* "I */
1584  case 0xd0: c[0] = '-'; c[1] ='D'; break; /* -D */
1585  case 0xd1: c[0] = '~'; c[1] ='n'; break; /* ~n */
1586  case 0xd2: c[0] = '`'; c[1] ='O'; break; /* `O */
1587  case 0xd3: c[0] = '\''; c[1] ='O'; break; /* 'O */
1588  case 0xd4: c[0] = '^'; c[1] ='O'; break; /* ^O */
1589  case 0xd5: c[0] = '~'; c[1] ='O'; break; /* ~O */
1590  case 0xd6: c[0] = '"'; c[1] ='O'; break; /* "O */
1591  case 0xd9: c[0] = '`'; c[1] ='U'; break; /* `U */
1592  case 0xda: c[0] = '\''; c[1] ='U'; break; /* 'U */
1593  case 0xdb: c[0] = '^'; c[1] ='U'; break; /* ^U */
1594  case 0xdc: c[0] = '"'; c[1] ='U'; break; /* "U */
1595  case 0xdd: c[0] = '\''; c[1] ='Y'; break; /* 'Y */
1596  case 0xe0: c[0] = '`'; c[1] ='a'; break; /* `a */
1597  case 0xe1: c[0] = '\''; c[1] ='a'; break; /* 'a */
1598  case 0xe2: c[0] = '^'; c[1] ='a'; break; /* ^a */
1599  case 0xe3: c[0] = '~'; c[1] ='a'; break; /* ~a */
1600  case 0xe4: c[0] = '"'; c[1] ='a'; break; /* "a */
1601  case 0xe5: c[0] = 'a'; c[1] ='a'; break; /* oa */
1602  case 0xe7: c[0] = ','; c[1] ='c'; break; /* ,c */
1603  case 0xe8: c[0] = '`'; c[1] ='e'; break; /* `e */
1604  case 0xe9: c[0] = '\''; c[1] ='e'; break; /* 'e */
1605  case 0xea: c[0] = '^'; c[1] ='e'; break; /* ^e */
1606  case 0xeb: c[0] = '^'; c[1] ='e'; break; /* "e */
1607  case 0xec: c[0] = '`'; c[1] ='i'; break; /* `i */
1608  case 0xed: c[0] = '\''; c[1] ='i'; break; /* 'i */
1609  case 0xee: c[0] = '^'; c[1] ='i'; break; /* ^i */
1610  case 0xef: c[0] = '"'; c[1] ='i'; break; /* "i */
1611  case 0xf0: c[0] = '-'; c[1] ='d'; break; /* -d */
1612  case 0xf1: c[0] = '~'; c[1] ='n'; break; /* ~n */
1613  case 0xf2: c[0] = '`'; c[1] ='o'; break; /* `o */
1614  case 0xf3: c[0] = '\''; c[1] ='o'; break; /* 'o */
1615  case 0xf4: c[0] = '^'; c[1] ='o'; break; /* ^o */
1616  case 0xf5: c[0] = '~'; c[1] ='o'; break; /* ~o */
1617  case 0xf6: c[0] = '"'; c[1] ='o'; break; /* "o */
1618  case 0xf9: c[0] = '`'; c[1] ='u'; break; /* `u */
1619  case 0xfa: c[0] = '\''; c[1] ='u'; break; /* 'u */
1620  case 0xfb: c[0] = '^'; c[1] ='u'; break; /* ^u */
1621  case 0xfc: c[0] = '"'; c[1] ='u'; break; /* "u */
1622  case 0xfd: c[0] = '\''; c[1] ='y'; break; /* 'y */
1623 
1624  /* diacritical marks */
1625  case 0x00: c[0] = '`' ; break; /* grave from \` */
1626  case 0x01: c[0] = latin1 ? 0xb4 : '\''; break;
1627  /* acute from \' */
1628  case 0x02: c[0] = '^' ; break; /* circumflex from \^ */
1629  case 0x03: c[0] = '~' ; break; /* tilde from \~ */
1630  case 0x04: c[0] = '"' ; break; /* diaeresis from \" */
1631  case 0x05: c[0] = '"' ; break; /* double acute from \H */
1632  case 0x06: c[0] = latin1 ? 0xb0 : '~'; break;
1633  /* ring above from \r */
1634  case 0x07: c[0] = '~' ; break; /* caron from \v */
1635  case 0x08: c[0] = '~' ; break; /* breve from \u */
1636  case 0x09: c[0] = '~' ; break; /* macron from \= */
1637  case 0x0a: c[0] = '.' ; break; /* dot from \. */
1638  case 0x0b: c[0] = latin1 ? 0xb8 : ','; break;
1639  /* cedilla from \c */
1640  case 0x0c: c[0] = ',' ; break; /* ogonek from \k */
1641 
1642  default : c[0] = '#';
1643  }
1644 
1645  cc=c;
1646  while (*cc) { outchar(*cc); cc++; }
1647 
1648  return;
1649 
1650 } /* t1char */
1651 
1652 
1653 /*
1654  * TS1CHAR -- Process a character opcode for a TS1 encoding font.
1655  */
1656 
1657 void ts1char(unsigned char ch)
1658 {
1659  unsigned char c[4] = {0}, *cc;
1660  long ucs;
1661 
1662  if (allchar) {
1663  outchar(ch);
1664  return;
1665  }
1666  ucs = ts1_to_ucs[ch];
1667  if (utf8) {
1668  dounichar(ucs);
1669  return;
1670  }
1671  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1672  outchar(ucs);
1673  return;
1674  }
1675 
1676  switch (ch) {
1677  case 0x17: /* \capitalcompwordmark */
1678  case 0x1F: return; /* \textascendercompwordmark */
1679  case 0x0D: /* \textquotestraightbase */
1680  case 0x27: c[0] = '\''; break; /* \textquotesingle */
1681  case 0x12: c[0] = '"'; break; /* \textquotestraghtdblbase */
1682  case 0x15: c[0] = '-'; break; /* \texttwelveudash */
1683  case 0x16: c[0] = '-'; c[1] = '-'; /* \textthreequartersemdash */
1684  break;
1685  case 0x18: c[0] = '<'; c[1] = '-'; /* \textleftarrow */
1686  break;
1687  case 0x19: c[0] = '-'; c[1] = '>'; /* \textrightarrow */
1688  break;
1689  case 0x2A: c[0] = '*'; break; /* \textasteriskcentered */
1690  case 0x2D: c[0] = '='; break; /* \textdblhyphen */
1691  case 0x2F: c[0] = '/'; break; /* \textfractionsolidus */
1692  case 0x3C: c[0] = '<'; break; /* \textlangle */
1693  case 0x3D: c[0] = '-'; break; /* \textminus */
1694  case 0x3E: c[0] = '>'; break; /* \textrangle */
1695  case 0x5B: c[0] = '['; break; /* \textlbrackdbl */
1696  case 0x5D: c[0] = ']'; break; /* \textrbrackdbl */
1697  case 0x5E: c[0] = '^'; break; /* \textuparrow */
1698  case 0x5F: c[0] = 'v'; break; /* \textdownarrow */
1699  case 0x7E: c[0] = '~'; break; /* \texttildelow */
1700  case 0x7F: c[0] = '='; break; /* \textdblhyphenchar */
1701  case 0x84: c[0] = '*'; break; /* \textdagger */
1702  case 0x85: c[0] = '*'; c[1] = '*'; /* \textdaggerdbl */
1703  break;
1704  case 0x86: c[0] = '|'; c[1] = '|'; /* \textbardbl */
1705  break;
1706  case 0x89: if (latin1) {
1707  c[0] = 0xb0; c[1] = 'C';
1708  }
1709  else
1710  c[0] = 'C';
1711  break; /* \textcelsius */
1712  case 0x8B: c[0] = 'c'; break; /* \textcent */
1713  case 0x8C: c[0] = 'f'; break; /* \textflorin */
1714  case 0x8D: c[0] = 'C'; break; /* \textcentoldstyle */
1715  case 0x8E: c[0] = 'W'; break; /* \textwon */
1716  case 0x8F: c[0] = 'N'; break; /* \textnaira */
1717  case 0x90: c[0] = 'G'; break; /* \textguarani */
1718  case 0x91: c[0] = 'P'; break; /* \textpeso */
1719  case 0x92: c[0] = 'L'; break; /* \textlira */
1720  case 0x93: c[0] = 'R'; break; /* \textrecipe */
1721  case 0x94: /* \textinterrobang */
1722  case 0x95: c[0] = '!'; c[1] = '?'; /* \textinterrobangdown */
1723  break;
1724  case 0x97: c[0] = 'T'; c[1] = 'M'; /* \texttrademark */
1725  break;
1726  case 0x99: c[0] = 'P'; break; /* \textpilcrow */
1727  case 0x9B: c[0] = 'N'; c[1] = 'o'; /* \textnumero */
1728  break;
1729  case 0x9F: c[0] = 'S'; c[1] = 'M'; /* \textservicemark */
1730  break;
1731  case 0xA0: c[0] = '{'; break; /* \textlquill */
1732  case 0xA1: c[0] = '}'; break; /* \textrquill */
1733  case 0xA2: c[0] = 'c'; break; /* \textcent */
1734  case 0xA3: c[0] = 'L'; break; /* \textsterling */
1735  case 0xA5: c[0] = 'Y'; break; /* \textyen */
1736  case 0xA6: c[0] = '|'; break; /* \textbrokenbar */
1737  case 0xA7: c[0] = 'S'; break; /* \textsection */
1738  case 0xA9: c[0] = 'C'; break; /* \textcopyright */
1739  case 0xAD: c[0] = 'P'; break; /* \textcircledP */
1740  case 0xAE: c[0] = 'R'; break; /* \textregistered */
1741  case 0xB6: c[0] = 'P'; break; /* \textparagraph */
1742  case 0xB1: c[0] = '+'; c[1] = '-'; /* \textpm */
1743  break;
1744  case 0xBC: c[0] = '1'; c[1] = '/'; /* \textonequarter */
1745  c[2] = '4'; break;
1746  case 0xBD: c[0] = '1'; c[1] = '/'; /* \textonehalf */
1747  c[2] = '2'; break;
1748  case 0xBE: c[0] = '3'; c[1] = '/'; /* \textthreequarters */
1749  c[2] = '4'; break;
1750  case 0xBF: c[0] = 'E'; break; /* \texteuro */
1751  case 0xD6: c[0] = 'x'; break; /* \texttimes */
1752  case 0xF6: c[0] = '/'; break; /* \textdiv */
1753 
1754  case 0x30: case 0x31: case 0x32: case 0x33:
1755  case 0x34: case 0x35: case 0x36: case 0x37:
1756  case 0x38: case 0x39: case 0x3A: case 0x3B:
1757  c[0] = ch; break;
1758 
1759  /* diacritical marks */
1760  case 0x00: c[0] = '`' ; break; /* grave from \` */
1761  case 0x01: c[0] = latin1 ? 0xb4 : '\''; break;
1762  /* acute from \' */
1763  case 0x02: c[0] = '^' ; break; /* circumflex from \^ */
1764  case 0x03: c[0] = '~' ; break; /* tilde from \~ */
1765  case 0x04: c[0] = '"' ; break; /* diaeresis from \" */
1766  case 0x05: c[0] = '"' ; break; /* double acute from \H */
1767  case 0x06: c[0] = latin1 ? 0xb0 : '~'; break;
1768  /* ring above from \r */
1769  case 0x07: c[0] = '~' ; break; /* caron from \v */
1770  case 0x08: c[0] = '~' ; break; /* breve from \u */
1771  case 0x09: c[0] = '~' ; break; /* macron from \= */
1772  case 0x0a: c[0] = '.' ; break; /* dot from \. */
1773  case 0x0b: c[0] = latin1 ? 0xb8 : ','; break;
1774  /* cedilla from \c */
1775  case 0x0c: c[0] = ',' ; break; /* ogonek from \k */
1776 
1777  default : c[0] = '#';
1778  }
1779 
1780  cc=c;
1781  while (*cc) { outchar(*cc); cc++; }
1782 
1783  return;
1784 
1785 } /* ts1char */
1786 
1787 
1788 /*
1789  * T2CHAR -- Process a character opcode for a T2A/T2B/T2C/X2 encoding font.
1790  */
1791 
1792 void t2char(char flag, unsigned char ch)
1793 {
1794  unsigned char c[4] = {0}, *cc;
1795  const unsigned short *tex_to_ucs;
1796  long ucs;
1797 
1798  if (allchar) {
1799  outchar(ch);
1800  return;
1801  }
1802  if (!accent) {
1803  switch (ch) {
1804  case 0x00: /* grave from \` */
1805  case 0x01: /* acute from \' */
1806  case 0x02: /* circumflex from \^ */
1807  case 0x03: /* tilde from \~ */
1808  case 0x04: /* diaeresis from \" */
1809  case 0x05: /* double acute from \H */
1810  case 0x06: /* ring above from \r */
1811  case 0x07: /* caron from \v */
1812  case 0x08: /* breve from \u */
1813  case 0x09: /* macron from \= */
1814  case 0x0a: /* dot from \. */
1815  case 0x0b: /* cedilla from \c */
1816  case 0x0c: /* ogonek from \k */
1817  case 0x12: /* from \f */
1818  case 0x13: /* from \C */
1819  case 0x14: /* breve from \U */
1820  return;
1821  }
1822  }
1823  switch (flag) {
1824  case T2AFONT: tex_to_ucs=t2a_to_ucs; break;
1825  case T2BFONT: tex_to_ucs=t2b_to_ucs; break;
1826  case T2CFONT: tex_to_ucs=t2c_to_ucs; break;
1827  case X2FONT : tex_to_ucs=x2_to_ucs; break;
1828  default : exit(41); /* not supported */
1829  }
1830  ucs = tex_to_ucs[ch];
1831  if (utf8) {
1832  dounichar(ucs);
1833  return;
1834  }
1835  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1836  outchar(ucs);
1837  return;
1838  }
1839 
1840  switch (ch) {
1841  case 0x49: c[0] = 'I'; break; /* \CYRII */
1842  case 0x69: c[0] = 'i'; break; /* \cyrii */
1843  case 0x4A: c[0] = 'J'; break; /* \CYRJE */
1844  case 0x6A: c[0] = 'j'; break; /* \cyrje */
1845  case 0x51: c[0] = 'Q'; break; /* \CYRQ */
1846  case 0x53: c[0] = 'S'; break; /* \CYRDZE */
1847  case 0x57: c[0] = 'W'; break; /* \CYRW */
1848  case 0x71: c[0] = 'q'; break; /* \cyrq */
1849  case 0x73: c[0] = 's'; break; /* \cyrdze */
1850  case 0x77: c[0] = 'w'; break; /* \cyrw */
1851  case 0x0E: c[0] = '<'; break; /* \cyrlangle */
1852  case 0x0F: c[0] = '>'; break; /* \cyrrangle */
1853  case 0x15: c[0] = '-'; c[1] = '-'; /* \textendash */
1854  break;
1855  case 0x16: c[0] = '-'; c[1] = '-'; /* \textemdash */
1856  c[2] = '-'; break;
1857  case 0x27: /* \textquoteright */
1858  case 0x60: c[0] = '\''; break; /* \textquoteleft */
1859  case 0x10: /* \textquotedblleft */
1860  case 0x11: /* \textquotedblright */
1861  case 0xBD: c[0] = '"'; break; /* \quotedblbase */
1862  case 0x20: c[0] = '_'; break; /* \textvisiblespace */
1863  case 0x17: return; /* \textcompwordmark */
1864  case 0x7E: c[0] = '~'; break; /* \textasciitilde */
1865  case 0x9D: c[0] = 'N'; c[1] = 'o'; /* \textnumero */
1866  break;
1867  case 0x9F: c[0] = 'S'; break; /* \textsection */
1868  case 0xBE: c[0] = '<'; c[1] = '<'; /* \guillemotleft */
1869  break;
1870  case 0xBF: c[0] = '>'; c[1] = '>'; /* \guillemotright */
1871  break;
1872 
1873  /* diacritical marks */
1874  case 0x00: c[0] = '`' ; break; /* grave from \` */
1875  case 0x01: c[0] = latin1 ? 0xb4 : '\''; break;
1876  /* acute from \' */
1877  case 0x02: c[0] = '^' ; break; /* circumflex from \^ */
1878  case 0x03: c[0] = '~' ; break; /* tilde from \~ */
1879  case 0x04: c[0] = '"' ; break; /* diaeresis from \" */
1880  case 0x05: c[0] = '"' ; break; /* double acute from \H */
1881  case 0x06: c[0] = latin1 ? 0xb0 : '~'; break;
1882  /* ring above from \r */
1883  case 0x07: c[0] = '~' ; break; /* caron from \v */
1884  case 0x08: c[0] = '~' ; break; /* breve from \u */
1885  case 0x09: c[0] = '~' ; break; /* macron from \= */
1886  case 0x0a: c[0] = '.' ; break; /* dot from \. */
1887  case 0x0b: c[0] = latin1 ? 0xb8 : ','; break;
1888  /* cedilla from \c */
1889  case 0x0c: c[0] = ',' ; break; /* ogonek from \k */
1890  case 0x14: c[0] = '~' ; break; /* breve from \U */
1891 
1892  default : c[0] = '#';
1893  }
1894  if (flag != X2FONT) {
1895  switch (ch) {
1896  case 0x19: c[0] = 'i'; break; /* dotless i */
1897  case 0x1A: c[0] = 'j'; break; /* dotless j */
1898  case 0x1B: c[0] = 'f'; c[1] = 'f'; /* ligature */
1899  break;
1900  case 0x1C: c[0] = 'f'; c[1] = 'i'; /* ligature */
1901  break;
1902  case 0x1D: c[0] = 'f'; c[1] = 'l'; /* ligature */
1903  break;
1904  case 0x1E: c[0] = 'f'; c[1] = 'f'; /* ligature */
1905  c[2] = 'i'; break;
1906  case 0x1F: c[0] = 'f'; c[1] = 'f'; /* ligature */
1907  c[2] = 'l'; break;
1908  }
1909  }
1910 
1911  cc=c;
1912  while (*cc) { outchar(*cc); cc++; }
1913 
1914  return;
1915 
1916 } /* t2char */
1917 
1918 
1919 /*
1920  * OT2CHAR -- Process a character opcode for a OT2 encoding font.
1921  */
1922 
1923 void ot2char(unsigned char ch)
1924 {
1925  unsigned char c[4] = {0}, *cc;
1926  long ucs;
1927 
1928  if (allchar) {
1929  outchar(ch);
1930  return;
1931  }
1932  if (!accent) {
1933  switch (ch) {
1934  case 0x20: /* diaeresis from \" */
1935  case 0x24: /* breve from \U */
1936  case 0x26: /* acute from \' */
1937  case 0x40: /* breve from \u */
1938  return;
1939  }
1940  }
1941  ucs = ot2_to_ucs[ch];
1942  if (utf8) {
1943  dounichar(ucs);
1944  return;
1945  }
1946  else if ((latin1 && ucs<0x100) || ucs<0x80) {
1947  outchar(ucs);
1948  return;
1949  }
1950 
1951  switch (ch) {
1952  case 0x04: c[0] = 'I'; break; /* \CYRII */
1953  case 0x0C: c[0] = 'i'; break; /* \cyrii */
1954  case 0x4A: c[0] = 'J'; break; /* \CYRJE */
1955  case 0x6A: c[0] = 'j'; break; /* \cyrje */
1956  case 0x16: c[0] = 'S'; break; /* \CYRDZE */
1957  case 0x1E: c[0] = 's'; break; /* \cyrdze */
1958  case 0x7B: c[0] = '-'; c[1] = '-'; /* \textendash */
1959  break;
1960  case 0x7C: c[0] = '-'; c[1] = '-'; /* \textemdash */
1961  c[2] = '-'; break;
1962  case 0x7D: c[0] = 'N'; c[1] = 'o'; /* \textnumero */
1963  break;
1964  case 0x3C: c[0] = '<'; c[1] = '<'; /* \guillemotleft */
1965  break;
1966  case 0x3D: c[0] = 'i'; break; /* dotless i */
1967  case 0x3E: c[0] = '>'; c[1] = '>'; /* \guillemotright */
1968  break;
1969  case 0x27: /* \textquoteright */
1970  case 0x60: c[0] = '\''; break; /* \textquoteleft */
1971  case 0x22: /* \textquotedblright */
1972  case 0x5C: c[0] = '"'; break; /* \textquotedblleft */
1973 
1974  /* diacritical marks */
1975  case 0x20: c[0] = '"' ; break; /* diaeresis from \" */
1976  case 0x24: c[0] = '~' ; break; /* breve from \u */
1977  case 0x26: c[0] = latin1 ? 0xb4 : '\''; break;
1978  /* acute from \' */
1979  case 0x40: c[0] = '~' ; break; /* breve from \U */
1980 
1981  default : c[0] = '#';
1982  }
1983 
1984  cc=c;
1985  while (*cc) { outchar(*cc); cc++; }
1986 
1987  return;
1988 
1989 } /* ot2char */
1990 
1991 
1992 
1993 /*
1994  * OUTCHAR -- Here we put the character into the current page.
1995  *
1996  * This function includes some code to handle Latin1/Scandinavian
1997  * characters. I think that code doesn't belong here. IT
1998  * SHOULD BE MOVED OUT.
1999  */
2000 
2001 void outchar(long ch)
2002 {
2003  register int i, j;
2004  register long dia;
2005 
2006 /* fprintf(stderr, "hor: %ld, ver: %ld\n", h, v); */
2007 
2008  if (labs(v - currentline->vv) > lineheight / 2L)
2009  currentline = findline();
2010 
2011 #if 0
2012  j = (int) (((double) h / (double) maxpagewidth) * (ttywidth-1)) + 1;
2013 #else
2014  j = (int) (h / charwidth);
2015 #endif
2016  if (j > rightmargin) /* leftmargin <= j <= rightmargin */
2017  j = rightmargin;
2018  else if (j < leftmargin)
2019  j = leftmargin;
2020  foo = leftmargin - 1;
2021 
2022  /*
2023  * This code does not really belong here ...
2024  *
2025  * The following is very specialized code, it handles national *
2026  * Swe/Fin characters. They are respectively: a and o with two *
2027  * dots ("a & "o) and a with a circle (Oa). In Swe/Fin "ASCII" *
2028  * these characters replace {}|[] and \. TeX outputs these by *
2029  * first issuing the dots or circle and then backspace and set *
2030  * the a or o. When dvi2tty finds an a or o it searches in the *
2031  * near vicinity for the character codes that represent circle *
2032  * or dots and if one is found the corresponding national char *
2033  * replaces the special character codes. *
2034  */
2035  if (!allchar && compose && scascii) {
2036  if (strchr("aAoO", ch) != NULL) {
2037  for (i = IMAX(leftmargin, j-2);
2038  i <= IMIN(rightmargin, j+2);
2039  i++)
2040  if ((currentline->text[i - leftmargin] == 127) || /* DEL */
2041  (currentline->text[i - leftmargin] == 34) || /* " */
2042  (currentline->text[i - leftmargin] == 23))
2043  foo = i;
2044  if (foo >= leftmargin) {
2045  j = (int) foo;
2046  switch (currentline->text[j - leftmargin]) {
2047  case 127 :
2048  case 34 : /* DEL or " */
2049  if (ch == 'a')
2050  ch = '{'; /* } vi */
2051  else if (ch == 'A') /* dots ... */
2052  ch = '[';
2053  else if (ch == 'o')
2054  ch = '|';
2055  else if (ch == 'O')
2056  ch = '\\';
2057  break;
2058  case 23 : if (ch == 'a')
2059  ch = '}'; /* { vi */
2060  else if (ch == 'A') /* circle */
2061  ch = ']';
2062  break;
2063  }
2064  }
2065  }
2066  }
2067  if (!allchar && compose && (latin1 || utf8)) {
2068  if (strchr("aAeEiIoOuUnCcNYy", ch) != NULL || (ch & MAX_UNICODE) == 0x131) {
2069  for (i = IMAX(leftmargin, j-2);
2070  i <= IMIN(rightmargin, j+2);
2071  i++) {
2072  dia = currentline->text[i - leftmargin] & MAX_UNICODE;
2073  if ((dia == 0x60) || /* grave */
2074  (dia == 0xB0) || /* ring above */
2075  (dia == 0x2DA) || /* ring above */
2076  (dia == 0xB4) || /* acute */
2077  (dia == 0x5E) || /* circumflex */
2078  (dia == 0xA8) || /* diaeresis */
2079  (dia == 0xB8) || /* cedilla */
2080  (dia == 0x7E) || /* tilde */
2081  (dia == 0x2DC)) /* tilde */
2082  foo = i;
2083  }
2084  if (foo >= leftmargin) {
2085  j = (int) foo;
2086  dia = currentline->text[j - leftmargin] & MAX_UNICODE;
2087  switch (dia) {
2088  case 0x60: /* grave */
2089  if (ch == 'a') ch = 0xe0;
2090  else if (ch == 'A') ch = 0xc0;
2091  else if (ch == 'e') ch = 0xe8;
2092  else if (ch == 'E') ch = 0xc8;
2093  else if (ch == 'i') ch = 0xec;
2094  else if ((ch & MAX_UNICODE) == 0x131) ch = 0xec;
2095  else if (ch == 'I') ch = 0xcc;
2096  else if (ch == 'o') ch = 0xf2;
2097  else if (ch == 'O') ch = 0xd2;
2098  else if (ch == 'u') ch = 0xf9;
2099  else if (ch == 'U') ch = 0xd9;
2100  break;
2101  case 0xB0: /* ring above */
2102  case 0x2DA:
2103  if (ch == 'a') ch = 0xe5;
2104  else if (ch == 'A') ch = 0xc5;
2105  break;
2106  case 0xB4: /* acute */
2107  if (ch == 'a') ch = 0xe1;
2108  else if (ch == 'A') ch = 0xc1;
2109  else if (ch == 'e') ch = 0xe9;
2110  else if (ch == 'E') ch = 0xc9;
2111  else if (ch == 'i') ch = 0xed;
2112  else if ((ch & MAX_UNICODE) == 0x131) ch = 0xed;
2113  else if (ch == 'I') ch = 0xcd;
2114  else if (ch == 'o') ch = 0xf3;
2115  else if (ch == 'O') ch = 0xd3;
2116  else if (ch == 'u') ch = 0xfa;
2117  else if (ch == 'U') ch = 0xda;
2118  else if (ch == 'y') ch = 0xfd;
2119  else if (ch == 'Y') ch = 0xdd;
2120  break;
2121  case 0x5E: /* circumflex */
2122  if (ch == 'a') ch = 0xe2;
2123  else if (ch == 'A') ch = 0xc2;
2124  else if (ch == 'e') ch = 0xea;
2125  else if (ch == 'E') ch = 0xca;
2126  else if (ch == 'i') ch = 0xee;
2127  else if ((ch & MAX_UNICODE) == 0x131) ch = 0xee;
2128  else if (ch == 'I') ch = 0xce;
2129  else if (ch == 'o') ch = 0xf4;
2130  else if (ch == 'O') ch = 0xd4;
2131  else if (ch == 'u') ch = 0xfb;
2132  else if (ch == 'U') ch = 0xdb;
2133  break;
2134  case 0xA8: /* diaeresis */
2135  if (ch == 'a') ch = 0xe4;
2136  else if (ch == 'A') ch = 0xc4;
2137  else if (ch == 'e') ch = 0xeb;
2138  else if (ch == 'E') ch = 0xcb;
2139  else if (ch == 'i') ch = 0xef;
2140  else if ((ch & MAX_UNICODE) == 0x131) ch = 0xef;
2141  else if (ch == 'I') ch = 0xcf;
2142  else if (ch == 'o') ch = 0xf6;
2143  else if (ch == 'O') ch = 0xd6;
2144  else if (ch == 'u') ch = 0xfc;
2145  else if (ch == 'U') ch = 0xdc;
2146  else if (ch == 'y') ch = 0xff;
2147  else if (ch == 'Y' && utf8) ch = 0x178;
2148  break;
2149  case 0xB8: /* cedilla */
2150  if (ch == 'c') ch = 0xe7;
2151  else if (ch == 'C') ch = 0xc7; /* It does not seem to work */
2152  break;
2153  case 0x7E: /* tilde */
2154  case 0x2DC:
2155  if (ch == 'a') ch = 0xe3;
2156  else if (ch == 'A') ch = 0xc3;
2157  else if (ch == 'o') ch = 0xf5;
2158  else if (ch == 'O') ch = 0xd5;
2159  else if (ch == 'n') ch = 0xf1;
2160  else if (ch == 'N') ch = 0xd1;
2161  break;
2162  }
2163  if (utf8 && ch>0x7f) ch |= IS_UNICODE;
2164  }
2165  }
2166  }
2167  /*----------------- end of 'latin1 / Scandinavian code' ----------------*/
2168 
2169  if (foo == leftmargin-1) {
2170  if (japan) {
2171  while (((currentline->text[j - leftmargin] != SPACE) ||
2172  (kanji1 && (currentline->text[j+kanji1 - leftmargin] != SPACE)))
2173  && (j < rightmargin)) {
2174  j++;
2175  h += charwidth;
2176  }
2177  } else {
2178  while (j < rightmargin &&
2179  (currentline->text[j - leftmargin] != SPACE)) {
2180  j++;
2181  h += charwidth;
2182  }
2183  }
2184  }
2185  if ( allchar || ((ch >= SPACE) && (ch != DEL)) ||
2186  ((latin1 || scascii) && (ch == 23)) ) {
2187  /* ((latin1 || scascii) && (ch == DEL)) ) if VMS ??? */
2188  if (j < rightmargin)
2189  currentline->text[j - leftmargin] = ch;
2190  else
2192  if (j > currentline->charactercount)
2194  if (j < firstcolumn)
2195  firstcolumn = j;
2196  }
2197  h += charwidth;
2198 
2199  return;
2200 
2201 } /* outchar */
2202 
2203 
2204 
2205 /*
2206  * PUTCHARACTER -- Output character, don't change h
2207  */
2208 
2209 void putcharacter(long charnr)
2210 {
2211  register long saveh;
2212 
2213  saveh = h;
2214  if (nttj || is8bit)
2215  dochar((unsigned char) charnr);
2216  else if (allchar || ((charnr >= 0) && (charnr <= LASTCHAR)))
2217  outchar((unsigned char) charnr);
2218  else
2219  setchar(charnr);
2220  h = saveh;
2221 
2222  return;
2223 
2224 } /* putcharacter */
2225 
2226 
2227 
2228 /*
2229  * SETCHAR -- Should print characters with character code>127 from
2230  * current font. Note that the parameter is a dummy, since
2231  * ascii-chars are<=127.
2232  */
2233 
2234 void setchar(long charnr)
2235 {
2236 
2237  if (is8bit)
2238  dochar((unsigned char) charnr);
2239  else
2240  outchar((unsigned char)(allchar ? charnr : '#'));
2241 
2242  return;
2243 
2244 } /* setchar */
2245 
2246 
2247 static const char *ptex_fontchk[] = {
2248  "min", "goth", "jis",
2249  "hmin", "hgoth", "hmgoth", /* japanese-otf package */
2250  "nmlmin", "nmlgoth", "nmlmgoth",
2251  "hiramin", "hirakaku", "hiramaru",
2252  NULL /* end */
2253 };
2254 
2255 static const char *uptex_fontchk[] = {
2256  "umin", "ugoth", "ujis",
2257  "upjis", "upjpn", "upsch", "uptch", "upkor",
2258  "uphmin", "uphgoth", "uphmgoth", /* japanese-otf package */
2259  "upnmlmin", "upnmlgoth", "upnmlmgoth",
2260  "uphiramin", "uphirakaku", "uphiramaru",
2261  NULL /* end */
2262 };
2263 
2264 static const char *jtex_fontchk[] = {
2265  "dmj", "dgj",
2266  NULL /* end */
2267 };
2268 
2269 static int checkjfont(const char **jfontlist, const char *name)
2270 {
2271  int i, len;
2272  const char *tmpfont;
2273 
2274  i=0;
2275  while ( (tmpfont=jfontlist[i]) != NULL ) {
2276  len=strlen(tmpfont);
2277  if ( !strncmp(tmpfont, name, len) ) return 1;
2278  i++;
2279  }
2280  return 0;
2281 } /* checkjfont */
2282 
2283 
2284 
2285 /*
2286  * FONTDEF -- Process a font definition.
2287  */
2288 
2289 void fontdef(int x)
2290 {
2291  register int i;
2292  char * name;
2293  font * fnt;
2294  int namelen;
2295  long fntnum;
2296  int new = 0;
2297 
2298  fntnum = num(x);
2299  (void) get4(); /* checksum */
2300  (void) get4(); /* scale */
2301  (void) get4(); /* design */
2302  namelen = (int) get1() + (int) get1();
2303  fnt = fonts;
2304  while (fnt != NULL && fnt->num != fntnum) /* does fontnum exist */
2305  fnt = fnt->next;
2306  if (fnt == NULL) {
2307  if ((fnt = (font *) malloc(sizeof(font))) == NULL) {
2308  perror("fontdef");
2309  exit(40);
2310  }
2311  fnt->num = fntnum;
2312  new = 1;
2313  }
2314  else
2315  free(fnt->name); /* free old name */
2316  if ((name = (char *) malloc((namelen+1) * sizeof(char))) == NULL) {
2317  perror("fontdef");
2318  exit(40);
2319  }
2320 
2321  for (i = 0; i < namelen; i++)
2322  name[i] = get1();
2323  name[i] = '\0'; /* properly end string */
2324  fnt->name = name;
2325  if (new) {
2326  fnt->next = fonts;
2327  fonts = fnt;
2328  }
2329 
2330  /*
2331  * some magic to learn about font types...
2332  */
2333  fonts->flags = 0;
2334  fonts->is8bit = FALSE;
2335 
2336  if ((asciip == FALSE && nttj == FALSE && uptex == FALSE)
2337  && (!jdetect) && jautodetect) {
2338  if ( checkjfont(ptex_fontchk, name) ) {
2339  /* Detect as ASCII TeX */
2340  asciip = TRUE;
2341  nttj = uptex = FALSE;
2342  japan = jdetect = TRUE;
2343  fonts->flags |= MIFONT;
2345  } else if ( checkjfont(uptex_fontchk, name) ) {
2346  /* Detect as upTeX */
2347  uptex = TRUE;
2348  nttj = asciip = FALSE;
2349  japan = jdetect = TRUE;
2350  fonts->flags |= MIFONT;
2351  enable_UPTEX(true);
2353  } else if ( checkjfont(jtex_fontchk, name) ) {
2354  /* Detect as NTT JTeX */
2355  nttj = TRUE;
2356  asciip = uptex = FALSE;
2357  japan = jdetect = TRUE;
2358  fonts->flags |= JPFONT;
2360  }
2361  }
2362  if (nttj)
2363  fonts->fontnum = getjsubfont(name);
2364  else
2365  fonts->fontnum = 0;
2366 
2367  if ((strncmp(name, "ec", 2)) == 0) {
2368  fonts->flags = T1FONT;
2369  fonts->is8bit = TRUE;
2370  return;
2371  }
2372  else if ((strncmp(name, "tc", 2)) == 0 ||
2373  (strncmp(name, "ts1", 3)) == 0) {
2374  fonts->flags = TS1FONT;
2375  fonts->is8bit = TRUE;
2376  return;
2377  }
2378  else if ((strncmp(name, "wn", 2)) == 0) {
2379  fonts->flags = OT2FONT;
2380  return;
2381  }
2382  else if ((strncmp(name, "la", 2)) == 0) {
2383  fonts->flags = T2AFONT;
2384  fonts->is8bit = TRUE;
2385  return;
2386  }
2387  else if ((strncmp(name, "lb", 2)) == 0) {
2388  fonts->flags = T2BFONT;
2389  fonts->is8bit = TRUE;
2390  return;
2391  }
2392  else if ((strncmp(name, "lc", 2)) == 0) {
2393  fonts->flags = T2CFONT;
2394  fonts->is8bit = TRUE;
2395  return;
2396  }
2397  else if ((strncmp(name, "rx", 2)) == 0) {
2398  fonts->flags = X2FONT;
2399  fonts->is8bit = TRUE;
2400  return;
2401  }
2402  if ((strstr(name, "sy")) != NULL)
2403  fonts->flags = SYMFONT;
2404  if ((strstr(name, "tt")) != NULL)
2405  fonts->flags = TTFONT;
2406  if ((strstr(name, "mi")) != NULL)
2407  fonts->flags = MIFONT;
2408 
2409  return;
2410 
2411 } /* fontdef */
2412 
2413 
2414 
2415 #define NJSUBS 33
2416 const char *jsf_names[]={
2417  "sy", "roma", "hira", "kata", "greek", "russian", "keisen",
2418  "ka", "kb", "kc", "kd", "ke", "kf", "kg", "kh", "ki", "kj",
2419  "kk", "kl", "km", "kn", "ko", "kp", "kq", "kr", "ks", "kt",
2420  "ku", "kv", "kw", "kx", "ky", "kz"
2421 };
2422 
2423 
2424 int getjsubfont(char *s)
2425 {
2426  int jf;
2427 
2428  if (strlen(s) > 3 && s[0] == 'd' && (s[1] == 'm' || s[1] == 'g') && s[2] == 'j') {
2429  for (jf = 0; jf < NJSUBS; jf++) {
2430  if (strncmp(&s[3], jsf_names[jf], strlen(jsf_names[jf])) == 0)
2431  return jf+1;
2432  }
2433  }
2434 
2435  return 0;
2436 
2437 } /* getjsubfont */
2438 
2439 
2440 
2441 /*
2442  * SETFONT -- Switch to specific font. Try to find out if it is a symbol
2443  * font.
2444  * Option -c allchar does not pertain to this portion, so symbols
2445  * are still translated.
2446  */
2447 
2448 void setfont(long fntnum)
2449 {
2450  char * s;
2451  const char * d;
2452 
2453  symbolfont = FALSE;
2454  ttfont = FALSE;
2455  mifont = FALSE;
2456  fnt = fonts;
2457 
2458  while (fnt != NULL && fnt->num != fntnum)
2459  fnt = fnt->next;
2460 
2461  if (fnt == NULL) {
2462  /* error : font not found */
2463  return;
2464  }
2465 
2466  if (fnt->fontnum == 0) {
2467  symbolfont = fnt->flags == SYMFONT;
2468  ttfont = fnt->flags == TTFONT;
2469  mifont = fnt->flags == MIFONT;
2470  is8bit = fnt->is8bit;
2471  }
2472 
2473  s = fnt->name;
2474  if (printfont) {
2475  d = delim; /* print delim and font name if -b was chosen */
2476  while (*d) {putcharacter(*d); d++;}
2477  while (*s) {putcharacter(*s); s++;}
2478  while (d-- > delim) {putcharacter(*d);}
2479  }
2480 
2481  return;
2482 
2483 } /* setfont */
2484 
2485 
2486 
2487 void jischar(unsigned long ch)
2488 {
2489  unsigned int Ku, Ten;
2490 
2491  compute_jis(fnt->fontnum, (unsigned int) ch, &Ku, &Ten);
2492  kanji1 = 1;
2493  outchar((unsigned char)(Ku+128));
2494  kanji1 = 0;
2495  outchar((unsigned char)(Ten+128));
2496 
2497  return;
2498 
2499 } /* jischar */
2500 
2501 #define kushift(c) c+0x20
2502 #define tenshift(c) c+0x20
2503 
2504 void compute_jis(int f, unsigned int c, unsigned int *ku, unsigned int *ten)
2505 {
2506  int n;
2507 
2508  if (f <= 7) {
2509  if (f == 1) {
2510  if (c >= 100) {
2511  *ku = kushift(2);
2512  *ten = tenshift(c-100);
2513  }
2514  else {
2515  *ku = kushift(1);
2516  *ten = tenshift(c);
2517  }
2518  }
2519  else if (f == 2) {
2520  *ku = kushift(3);
2521  *ten = tenshift(c-32);
2522  }
2523  else {
2524  *ku = kushift(f+1);
2525  *ten = tenshift(c);
2526  }
2527  }
2528  else if (f <= 19) { /* Daiichi Suijun */
2529  n = (f-8)*256+c;
2530  *ku = kushift((n/94)+16);
2531  *ten = tenshift((n%94)+1);
2532  }
2533  else { /* Daini Suijun */
2534  n = (f-20)*256+c;
2535  *ku = kushift((n/94)+48);
2536  *ten = tenshift((n%94)+1);
2537  }
2538 
2539  return;
2540 
2541 } /* compute_jis */
2542 
2543 
2544 
2545 /*
2546  * VMS CODE
2547  */
2548 
2549 #if defined(VMS)
2550 long vmsseek(fp,n,dir)
2551 FILE *fp;
2552 long n;
2553 long dir;
2554 {
2555  long k,m,pos,val,oldpos;
2556  struct stat buffer;
2557 
2558  for (;;) { /* loops only once or twice */
2559  switch (dir) {
2560  case 0: /* from BOF */
2561  oldpos = vms_ftell(fp);
2562  k = n & 511;
2563  m = n >> 9;
2564  if (((*fp)->_cnt) && ((oldpos >> 9) == m)) {
2565  val = 0; /* still in */
2566  (*fp)->_ptr = ((*fp)->_base) + k;
2567  (*fp)->_cnt = 512 - k;
2568  }
2569  else {
2570  val = fseek(fp, m << 9, 0);
2571  if (val == 0) {
2572  (*fp)->_cnt = 0;
2573  (void) fgetc(fp);
2574  (*fp)->_ptr = ((*fp)->_base) + k;
2575  (*fp)->_cnt = 512 - k;
2576  }
2577  }
2578  return(val);
2579 
2580  case 1: pos = vms_ftell(fp);
2581  if (pos == EOF)
2582  return (EOF);
2583  n += pos;
2584  dir = 0;
2585  break;
2586 
2587  case 2: val = fstat(fileno(fp), &buffer);
2588  if (val == EOF)
2589  return (EOF);
2590  n += buffer.st_size - 1;
2591 
2592  dir = 0;
2593  break;
2594 
2595  default : return (EOF);
2596  }
2597  }
2598 
2599  /* NOTREACHED */
2600 
2601 } /* vmsseek */
2602 
2603 
2604 
2605 long vms_ftell(fp)
2606 FILE *fp;
2607 {
2608  char c;
2609  long pos;
2610  long val;
2611 
2612  if ((*fp)->_cnt == 0) {
2613  c = fgetc(fp);
2614  val = vms_ungetc(c, fp);
2615  if (val != c)
2616  return (EOF);
2617  }
2618  pos = ftell(fp);
2619  if (pos >= 0)
2620  pos += ((*fp)->_ptr) - ((*fp)->_base);
2621 
2622  return (pos);
2623 
2624 } /* vms_ftell */
2625 
2626 
2627 
2628 long vms_ungetc(c,fp)
2629 char c;
2630 FILE *fp;
2631 {
2632 
2633  if ((c == EOF) && feof(fp))
2634  return (EOF);
2635 
2636  if ((*fp)->_cnt >= 512)
2637  return (EOF);
2638 
2639  (*fp)->_cnt++;
2640  (*fp)->_ptr--;
2641  *((*fp)->_ptr) = c;
2642 
2643  return (c);
2644 
2645 } /*vms_ungetc */
2646 #endif
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
void __cdecl perror(char const *_ErrMsg)
#define count(a)
Definition: aptex-macros.h:781
#define name
#define height(a)
Definition: aptex-macros.h:200
#define n
Definition: t4ht.c:1290
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define free(a)
Definition: decNumber.cpp:310
#define POP
Definition: dtl.h:135
#define Y0
Definition: dtl.h:159
#define PUT2
Definition: dtl.h:127
#define X4
Definition: dtl.h:152
#define DOWN4
Definition: dtl.h:157
#define X1
Definition: dtl.h:149
#define RIGHT4
Definition: dtl.h:140
#define Y1
Definition: dtl.h:160
#define Y2
Definition: dtl.h:161
#define Z2
Definition: dtl.h:167
#define W3
Definition: dtl.h:145
#define PUSH
Definition: dtl.h:134
#define Z1
Definition: dtl.h:166
#define Z0
Definition: dtl.h:165
#define DOWN3
Definition: dtl.h:156
#define Z3
Definition: dtl.h:168
#define RIGHT2
Definition: dtl.h:138
#define Y4
Definition: dtl.h:163
#define W0
Definition: dtl.h:142
#define Y3
Definition: dtl.h:162
#define SET3
Definition: dtl.h:122
#define PUT3
Definition: dtl.h:128
#define EOP
Definition: dtl.h:133
#define X2
Definition: dtl.h:150
#define RIGHT1
Definition: dtl.h:137
#define X0
Definition: dtl.h:148
#define BOP
Definition: dtl.h:132
#define SET4
Definition: dtl.h:123
#define SET1
Definition: dtl.h:120
#define RIGHT3
Definition: dtl.h:139
#define DOWN2
Definition: dtl.h:155
#define PUT4
Definition: dtl.h:129
#define W1
Definition: dtl.h:143
#define W2
Definition: dtl.h:144
#define PUT1
Definition: dtl.h:126
#define W4
Definition: dtl.h:146
#define DOWN1
Definition: dtl.h:154
#define SET2
Definition: dtl.h:121
#define X3
Definition: dtl.h:151
#define Z4
Definition: dtl.h:169
#define ku(c)
Definition: decompfont.c:104
#define ten(c)
Definition: decompfont.c:105
#define fseek
Definition: xxstdio.h:30
#define fgetc
Definition: xxstdio.h:26
#define ftell
Definition: xxstdio.h:31
FILE * DVIfile
Definition: dvi2tty.c:99
int espace
Definition: dvi2tty.c:106
void errorexit(int errorcode)
Definition: dvi2tty.c:701
int ttywidth
Definition: dvi2tty.c:105
printlisttype * currentpage
Definition: dvi2tty.c:95
printlisttype * firstpage
Definition: dvi2tty.c:96
#define nopre
Definition: dvi2tty.h:85
#define bdpst
Definition: dvi2tty.h:90
#define fwsgn
Definition: dvi2tty.h:84
#define nopst
Definition: dvi2tty.h:92
#define lnerq
Definition: dvi2tty.h:81
#define JTEX_INTERNAL_ENC
Definition: dvi2tty.h:65
#define illop
Definition: dvi2tty.h:77
#define stkof
Definition: dvi2tty.h:78
#define nil
Definition: dvi2tty.h:53
#define bdpp
Definition: dvi2tty.h:91
#define stkrq
Definition: dvi2tty.h:80
#define badid
Definition: dvi2tty.h:82
#define stkuf
Definition: dvi2tty.h:79
#define PTEX_INTERNAL_ENC
Definition: dvi2tty.h:68
#define nobop
Definition: dvi2tty.h:86
#define UPTEX_INTERNAL_ENC
Definition: dvi2tty.h:71
#define bdpre
Definition: dvi2tty.h:88
#define bdbop
Definition: dvi2tty.h:89
char * strcpy()
long vv
Definition: dvi2xx.h:581
char * temp
Definition: dvidvi.c:137
void setchar(long charnr)
Definition: dvistuff.c:2234
font * fonts
Definition: dvistuff.c:188
#define VERSIONID
Definition: dvistuff.c:58
#define IMIN(a, b)
Definition: dvistuff.c:82
long y
Definition: dvistuff.c:168
void dounichar(long ch)
Definition: dvistuff.c:1018
long pagenr
Definition: dvistuff.c:172
bool mifont
Definition: dvistuff.c:156
#define TTFONT
Definition: dvistuff.c:127
long horizontalmove(long amount)
Definition: dvistuff.c:853
bool scascii
Definition: dvistuff.c:143
void ts1char(unsigned char ch)
Definition: dvistuff.c:1657
void t2char(char flag, unsigned char ch)
Definition: dvistuff.c:1792
void postamble(void)
Definition: dvistuff.c:303
#define T2BFONT
Definition: dvistuff.c:134
void t1char(unsigned char ch)
Definition: dvistuff.c:1404
#define sget1()
Definition: dvistuff.c:89
#define get3()
Definition: dvistuff.c:87
#define T2AFONT
Definition: dvistuff.c:133
int kanji1
Definition: dvistuff.c:191
long backpointer
Definition: dvistuff.c:171
#define MOVE
Definition: dvistuff.c:66
#define OT2FONT
Definition: dvistuff.c:132
long z
Definition: dvistuff.c:168
long x
Definition: dvistuff.c:168
bool printfont
Definition: dvistuff.c:160
#define MAX_UNICODE
Definition: dvistuff.c:80
#define rightmargin
Definition: dvistuff.c:61
bool noffd
Definition: dvistuff.c:158
#define VERTICALEPSILON
Definition: dvistuff.c:59
bool jdetect
Definition: dvistuff.c:155
static const char * jtex_fontchk[]
Definition: dvistuff.c:2264
#define mseek
Definition: dvistuff.c:55
#define sget4()
Definition: dvistuff.c:92
#define STAY
Definition: dvistuff.c:67
#define get4()
Definition: dvistuff.c:88
void ot2char(unsigned char ch)
Definition: dvistuff.c:1923
#define tenshift(c)
Definition: dvistuff.c:2502
void preamble(void)
Definition: dvistuff.c:360
bool noligaturefi
Definition: dvistuff.c:146
void normchar(char flag, unsigned char ch)
Definition: dvistuff.c:1220
int skipnops(void)
Definition: dvistuff.c:880
long charwidth
Definition: dvistuff.c:176
bool allchar
Definition: dvistuff.c:162
#define relative
Definition: dvistuff.c:70
#define IMAX(a, b)
Definition: dvistuff.c:83
#define SPACE
Definition: dvistuff.c:73
void rule(bool moving, long rulewt, long ruleht)
Definition: dvistuff.c:785
void jischar(unsigned long ch)
Definition: dvistuff.c:2487
#define sget3()
Definition: dvistuff.c:91
long w
Definition: dvistuff.c:168
void symchar(unsigned char ch)
Definition: dvistuff.c:1106
#define IS_UNICODE
Definition: dvistuff.c:79
#define MIFONT
Definition: dvistuff.c:129
void michar(unsigned char ch)
Definition: dvistuff.c:1175
#define LINELEN
Definition: dvistuff.c:64
#define T2CFONT
Definition: dvistuff.c:135
unsigned long num(int size)
Definition: dvistuff.c:980
bool sequenceon
Definition: dvistuff.c:142
long lineheight
Definition: dvistuff.c:177
#define JPFONT
Definition: dvistuff.c:137
void outchar(long ch)
Definition: dvistuff.c:2001
static const char * uptex_fontchk[]
Definition: dvistuff.c:2255
#define sget2()
Definition: dvistuff.c:90
int sptr
Definition: dvistuff.c:186
bool accent
Definition: dvistuff.c:147
#define TS1FONT
Definition: dvistuff.c:131
linetype * firstline
Definition: dvistuff.c:181
#define absolute
Definition: dvistuff.c:69
void printpage(void)
Definition: dvistuff.c:637
int getjsubfont(char *s)
Definition: dvistuff.c:2424
bool jautodetect
Definition: dvistuff.c:154
#define get2()
Definition: dvistuff.c:86
const char * jsf_names[]
Definition: dvistuff.c:2416
bool asciip
Definition: dvistuff.c:151
struct _font font
void skippage(void)
Definition: dvistuff.c:565
void ruleaux(long rulewt, long ruleht, char ch)
Definition: dvistuff.c:819
#define X2FONT
Definition: dvistuff.c:136
bool pageswitchon
Definition: dvistuff.c:141
linetype * currentline
Definition: dvistuff.c:180
long h
Definition: dvistuff.c:167
#define LASTCHAR
Definition: dvistuff.c:76
void setfont(long fntnum)
Definition: dvistuff.c:2448
long pagecounter
Definition: dvistuff.c:170
#define get1()
Definition: dvistuff.c:85
bool uptex
Definition: dvistuff.c:152
void fontdef(int x)
Definition: dvistuff.c:2289
stackitem * stack
Definition: dvistuff.c:185
void compute_jis(int f, unsigned int c, unsigned int *ku, unsigned int *ten)
Definition: dvistuff.c:2504
void initpage(void)
Definition: dvistuff.c:420
void walkpages(void)
Definition: dvistuff.c:382
bool nttj
Definition: dvistuff.c:150
#define kushift(c)
Definition: dvistuff.c:2501
font * fnt
Definition: dvistuff.c:189
static const char * ptex_fontchk[]
Definition: dvistuff.c:2247
int stackmax
Definition: dvistuff.c:173
long v
Definition: dvistuff.c:167
#define SYMFONT
Definition: dvistuff.c:128
bool japan
Definition: dvistuff.c:153
static int checkjfont(const char **jfontlist, const char *name)
Definition: dvistuff.c:2269
#define DEL
Definition: dvistuff.c:74
#define leftmargin
Definition: dvistuff.c:63
linetype * lastline
Definition: dvistuff.c:182
bool inlist(long pagenr)
Definition: dvistuff.c:758
const char * dvistuff
Definition: dvistuff.c:99
linetype * findline(void)
Definition: dvistuff.c:921
bool is8bit
Definition: dvistuff.c:157
bool ttfont
Definition: dvistuff.c:148
bool utf8
Definition: dvistuff.c:145
#define NJSUBS
Definition: dvistuff.c:2415
linetype * my_getline(void)
Definition: dvistuff.c:896
void dochar(unsigned char ch)
Definition: dvistuff.c:1073
void dokanji(long ch)
Definition: dvistuff.c:1049
long snum(int size)
Definition: dvistuff.c:997
void dvimain(void)
Definition: dvistuff.c:286
bool compose
Definition: dvistuff.c:161
void dopage(void)
Definition: dvistuff.c:458
struct lineptr linetype
void putcharacter(long charnr)
Definition: dvistuff.c:2209
const char * delim
Definition: dvistuff.c:159
bool latin1
Definition: dvistuff.c:144
int firstcolumn
Definition: dvistuff.c:183
bool symbolfont
Definition: dvistuff.c:149
#define T1FONT
Definition: dvistuff.c:130
int opcode
Definition: dvistuff.c:165
#define FORM
Definition: dvistuff.c:72
long maxpagewidth
Definition: dvistuff.c:175
long int flag
Definition: f2c.h:53
static void
Definition: fpif.c:118
mpz_t * f
Definition: gen-fib.c:34
#define s
Definition: afcover.h:80
static char buff[2 *10240]
Definition: genind.c:46
@ VERSION
Definition: genrb.cpp:69
#define c(n)
Definition: gpos-common.c:150
#define d(n)
Definition: gpos-common.c:151
#define strchr
Definition: gsftopk.c:59
#define PRE
Definition: hbf2gf.c:42
#define XXX3
Definition: hbf2gf.c:55
#define XXX2
Definition: hbf2gf.c:54
#define POST
Definition: hbf2gf.c:60
#define XXX1
Definition: hbf2gf.c:53
#define XXX4
Definition: hbf2gf.c:56
#define putc
Definition: jbib.h:20
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p scientific i
Definition: afcover.h:80
#define SEEK_END
Definition: ftzconf.h:251
void exit()
#define EOF
Definition: afmparse.c:59
#define POST_POST
Definition: commands.h:259
#define FNT_DEF1
Definition: commands.h:253
#define FNT2
Definition: commands.h:246
#define FNT_DEF3
Definition: commands.h:255
#define FNT1
Definition: commands.h:245
#define FNT3
Definition: commands.h:247
#define FNT4
Definition: commands.h:248
#define FNT_DEF2
Definition: commands.h:254
#define PUT_RULE
Definition: commands.h:147
#define FONT_63
Definition: commands.h:244
#define FONT_00
Definition: commands.h:181
#define SET_RULE
Definition: commands.h:142
#define FNT_DEF4
Definition: commands.h:256
#define TRAILER
Definition: commands.h:85
char * strstr()
#define getc
Definition: line.c:39
#define fileno
Definition: win32lib.h:72
#define fstat
Definition: win32lib.h:74
static int ret
Definition: convert.c:72
#define fprintf
Definition: mendex.h:64
long UCStoUTF8(long ucs)
Definition: unicode.c:99
#define BYTE4(x)
Definition: unicode.h:27
#define BYTE2(x)
Definition: unicode.h:25
#define BYTE3(x)
Definition: unicode.h:26
#define BYTE1(x)
Definition: unicode.h:24
long toBUFF(long kcode)
Definition: ptexenc.c:304
void enable_UPTEX(boolean enable)
Definition: ptexenc.c:149
boolean set_enc_string(const_string file_str, const_string internal_str)
Definition: ptexenc.c:185
int putc2(int c, FILE *fp)
Definition: ptexenc.c:475
int multistrlen(unsigned char *s, int len, int pos)
Definition: ptexenc.c:256
long fromDVI(long kcode)
Definition: ptexenc.c:311
#define malloc
Definition: alloca.c:91
int strncmp()
#define NOP
Definition: tif_getimage.c:684
const int * pos
Definition: combiners.h:905
long ucs
Definition: main-euc.c:16
unsigned int DWORD
Definition: mktexlib.h:49
int foo
Definition: printf.c:190
int k
Definition: otp-parser.c:70
#define labs
Definition: p2c.h:477
#define fp
#define ROUND(x)
Definition: pnmnlfilt.c:322
static int size
Definition: ppmlabel.c:24
#define dir
#define flag
Definition: round_prec.c:45
#define wchar_t
Definition: stddef.in.h:81
Definition: tables.h:434
Definition: disdvi.c:99
char * name
Definition: disdvi.c:102
bool is8bit
Definition: dvistuff.c:124
long num
Definition: disdvi.c:100
int fontnum
Definition: dvistuff.c:123
unsigned char flags
Definition: dvistuff.c:122
struct _font * next
Definition: disdvi.c:101
Definition: utils.c:300
Definition: pbmfont.h:11
ubyte flags
Definition: gf2pbm.c:117
int charactercount
Definition: dvistuff.c:112
long text[332+20 - -50+1+1]
Definition: dvistuff.c:115
long vv
Definition: dvistuff.c:111
struct lineptr * prev
Definition: dvistuff.c:113
struct lineptr * next
Definition: dvistuff.c:114
Definition: output.h:18
int pag
Definition: dvi2tty.h:109
struct prlistptr * nxt
Definition: dvi2tty.h:112
bool all
Definition: dvi2tty.h:110
Definition: stemdb.c:56
Definition: spc_misc.c:56
long xx
Definition: dvistuff.c:105
long ww
Definition: dvistuff.c:104
long yy
Definition: dvistuff.c:106
long hh
Definition: dvistuff.c:102
long zz
Definition: dvistuff.c:107
long vv
Definition: dvistuff.c:103
Definition: strexpr.c:21
#define FILE
Definition: t1stdio.h:34
#define feof(f)
Definition: t1stdio.h:109
ch
Definition: t4ht.c:1443
int j
Definition: t4ht.c:1589
*job_name strlen((char *) job_name) - 4)
static const unsigned short ts1_to_ucs[]
Definition: tex2ucs.h:160
static const unsigned short t2c_to_ucs[]
Definition: tex2ucs.h:268
static const unsigned short t2b_to_ucs[]
Definition: tex2ucs.h:232
static const unsigned short oms_to_ucs[]
Definition: tex2ucs.h:64
static const unsigned short oml_to_ucs[]
Definition: tex2ucs.h:44
static const unsigned short ot1_to_ucs[]
Definition: tex2ucs.h:24
static const unsigned short ot2_to_ucs[]
Definition: tex2ucs.h:104
static const unsigned short tt_to_ucs[]
Definition: tex2ucs.h:84
static const unsigned short t1_to_ucs[]
Definition: tex2ucs.h:124
static const unsigned short t2a_to_ucs[]
Definition: tex2ucs.h:196
static const unsigned short x2_to_ucs[]
Definition: tex2ucs.h:304
val
Definition: tex4ht.c:3227
m
Definition: tex4ht.c:3990
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)
@ L
Definition: ubidiimp.h:45