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)  

FindErrs.c
Go to the documentation of this file.
1 /*
2  * ChkTeX, error searching & report routines.
3  * Copyright (C) 1995-96 Jens T. Berger Thielemann
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  * Contact the author at:
20  * Jens Berger
21  * Spektrumvn. 4
22  * N-0666 Oslo
23  * Norway
24  * E-mail: <jensthi@ifi.uio.no>
25  *
26  *
27  */
28 
29 
30 #include "ChkTeX.h"
31 #include "FindErrs.h"
32 #include "OpSys.h"
33 #include "Utility.h"
34 #include "Resource.h"
35 
36 #if HAVE_PCRE || HAVE_POSIX_ERE
37 
38 #if HAVE_PCRE
39 #include <pcreposix.h>
40 #else
41 #include <regex.h>
42 #endif
43 
44 #define REGEX_FLAGS REG_EXTENDED
45 #define NUM_MATCHES 10
46 #define ERROR_STRING_SIZE 100
47 
48 regex_t* RegexArray = NULL;
49 regex_t* SilentRegex = NULL;
50 int NumRegexes = 0;
51 
52 #endif
53 
57 
58 /***************************** ERROR MESSAGES ***************************/
59 
60 #undef MSG
61 #define MSG(num, type, inuse, ctxt, text) {num, type, inuse, ctxt, text},
62 
63 struct ErrMsg LaTeXMsgs[emMaxFault + 1] = {
65 };
66 
67 #define istex(c) (isalpha((unsigned char)c) || (AtLetter && (c == '@')))
68 #define CTYPE(func) \
69 static int my_##func(int c) \
70 { \
71  return(func(c)); \
72 }
73 
74 #define SUPPRESSED_ON_LINE(c) (LineSuppressions & ((uint64_t)1<<c))
75 
76 #define INUSE(c) \
77  ((LaTeXMsgs[(enum ErrNum) c].InUse == iuOK) && !SUPPRESSED_ON_LINE(c))
78 
79 #define PSERR2(pos,len,err,a,b) \
80  PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a, b)
81 
82 #define PSERRA(pos,len,err,a) \
83  PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a)
84 
85 #define HEREA(len, err, a) PSERRA(BufPtr - Buf - 1, len, err, a)
86 #define PSERR(pos,len,err) PSERRA(pos,len,err,"")
87 
88 #define HERE(len, err) HEREA(len, err, "")
89 
90 #define SKIP_BACK(ptr, c, check) \
91  while((c = *ptr--)) \
92  { \
93  if (!(check)) break; \
94  } \
95  ptr++;
96 
97 #define SKIP_AHEAD(ptr, c, check) \
98  while((c = *ptr++)) \
99  { \
100  if (!(check)) \
101  break; \
102  } \
103  ptr--;
104 
105 
106 /* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */
107 
108 /*
109  * A list of characters LaTeX considers as an end-of-sentence characters, which
110  * should be detected when whether sentence spacing is correct.
111  *
112  */
113 static const char LTX_EosPunc[] = { '.', ':', '?', '!', 0 };
114 
115 /*
116  * General punctuation characters used on your system.
117  */
118 static const char LTX_GenPunc[] = { ',', ';', 0 };
119 
120 /*
121  * A list of characters LaTeX considers as an small punctuation characters,
122  * which should not be preceded by a \/.
123  */
124 static const char LTX_SmallPunc[] = { '.', ',', 0 };
125 
126 /*
127  * String used to delimit a line suppression. This string must be
128  * followed immediately by the number of the warning to be suppressed.
129  * If more than one warning is to be suppressed, then multiple copies
130  * of LineSuppDelim+number must be used.
131  */
132 const char LineSuppDelim[] = "chktex ";
133 
134 /*
135  * String used to delimit a file suppression. This string must be
136  * followed immediately by the number of the warning to be suppressed.
137  * If more than one warning is to be suppressed, then multiple copies
138  * of FileSuppDelim+number must be used.
139  */
140 const char FileSuppDelim[] = "chktex-file ";
141 
142 /*
143  * A bit field used to hold the suppressions for the current line.
144  */
146 /*
147  * A bit field used to hold the suppressions of numbered user warnings
148  * for the current line.
149  */
151 
152 static unsigned long Line;
153 
154 static const char *RealBuf;
155 static char *BufPtr;
156 
157 static int ItFlag = efNone;
158 static int MathFlag = efNone;
159 
163 
164 static enum ErrNum PerformCommand(const char *Cmd, char *Arg);
165 
166 #ifdef isdigit
167 CTYPE(isdigit)
168 #else
169 # define my_isdigit isdigit
170 #endif
171 
172 #ifdef isalpha
173 CTYPE(isalpha)
174 #else
175 # define my_isalpha isalpha
176 #endif
177 
178 /*
179  * Reads in a TeX token from Src and puts it in Dest.
180  *
181  */
182 
183 
184 static char *GetLTXToken(char *Src, char *Dest)
185 {
186  int Char;
187 
188  if (Src && *Src)
189  {
190  if (*Src == '\\')
191  {
192  *Dest++ = *Src++;
193  Char = *Dest++ = *Src++;
194 
195  if (istex(Char))
196  {
197  while (istex(Char))
198  Char = *Dest++ = *Src++;
199 
200  Src--;
201  Dest--;
202  }
203 
204  }
205  else
206  *Dest++ = *Src++;
207  *Dest = 0;
208  }
209  else
210  Src = NULL;
211 
212  return (Src);
213 }
214 
215 
216 /*
217  * Scans the `SrcBuf' for a LaTeX arg, and puts that arg into `Dest'.
218  * `Until' specifies what we'll copy. Assume the text is
219  * "{foo}bar! qux} baz".
220  * GET_TOKEN => "{foo}"
221  * GET_STRIP_TOKEN => "foo"
222  * '!' => "{foo}bar!" (i.e. till the first "!")
223  * Returns NULL if we can't find the argument, ptr to the first character
224  * after the argument in other cases.
225  *
226  * If one of the tokens found is in the wl wordlist, and we're in the
227  * outer most paren, and Until isn't a single character, we'll stop.
228  * You may pass NULL as wl.
229  *
230  * We assume that you've previously skipped over leading spaces.
231  *
232  */
233 
234 #define GET_TOKEN 256
235 #define GET_STRIP_TOKEN 257
236 
237 static char *GetLTXArg(char *SrcBuf, char *OrigDest, const int Until,
238  struct WordList *wl)
239 {
240  char *Retval;
241  char *TmpPtr;
242  char *Dest = OrigDest;
243  unsigned long DeliCnt = 0;
244 
245  *Dest = 0;
246  TmpPtr = SrcBuf;
247 
248  switch (Until)
249  {
250  case GET_STRIP_TOKEN:
251  case GET_TOKEN:
252  while ((Retval = GetLTXToken(TmpPtr, Dest)))
253  {
254  switch (*Dest)
255  {
256  case '{':
257  DeliCnt++;
258  break;
259  case '}':
260  DeliCnt--;
261  }
262  Dest += Retval - TmpPtr;
263  TmpPtr = Retval;
264 
265  if (!DeliCnt || ((DeliCnt == 1) && wl && HasWord(Dest, wl)))
266  break;
267  }
268 
269  if (Retval && (*OrigDest == '{') && (Until == GET_STRIP_TOKEN))
270  {
271  int len = strlen(OrigDest+1);
272  memmove(OrigDest, OrigDest + 1, len + 1);
273  /* Strip the last '}' off */
274  OrigDest[len-1] = 0;
275  }
276  break;
277  default:
278  DeliCnt = TRUE;
279  while ((Retval = GetLTXArg(TmpPtr, Dest, GET_TOKEN, NULL)))
280  {
281  if (*Dest == Until)
282  DeliCnt = FALSE;
283 
284  Dest += Retval - TmpPtr;
285  TmpPtr = Retval;
286 
287  if (!DeliCnt)
288  break;
289  }
290  break;
291  }
292  *Dest = 0;
293 
294  return (Retval);
295 }
296 
297 
298 static char *PreProcess(void)
299 {
300  char *TmpPtr;
301 
302  /* Reset any line suppressions */
303 
306 
307  /* Kill comments. */
308  strcpy(Buf, RealBuf);
309 
310  TmpPtr = Buf;
311 
313  while ((TmpPtr = strchr(TmpPtr, '%')))
314  {
315  char *EscapePtr = TmpPtr;
316  int NumBackSlashes = 0;
317  while (EscapePtr != Buf && EscapePtr[-1] == '\\')
318  {
319  ++NumBackSlashes;
320  --EscapePtr;
321  }
322 
323  /* If there is an even number of backslashes, then it's a comment. */
324  if ((NumBackSlashes % 2) == 0)
325  {
327  PSERR(TmpPtr - Buf, 1, emComment);
328  *TmpPtr = 0;
329  /* Check for line suppressions */
330  if (!NoLineSupp)
331  {
332  int error;
333  const int MaxSuppressionBits = 63;
334 
335  /* Convert to lowercase to compare with LineSuppDelim */
336  EscapePtr = ++TmpPtr; /* move past NUL terminator */
337  while ( *EscapePtr )
338  {
339  *EscapePtr = tolower((unsigned char)*EscapePtr);
340  ++EscapePtr;
341  }
342 
343  EscapePtr = TmpPtr; /* Save it for later */
344  while ((TmpPtr = strstr(TmpPtr, FileSuppDelim))) {
345  TmpPtr += STRLEN(FileSuppDelim);
346  error = atoi(TmpPtr);
347 
348  if (abs(error) > MaxSuppressionBits)
349  {
350  PrintPrgErr(pmSuppTooHigh, error, MaxSuppressionBits);
351  }
352  if (error > 0)
353  {
354  FileSuppressions |= ((uint64_t)1 << error);
355  LineSuppressions |= ((uint64_t)1 << error);
356  }
357  else
358  {
359  UserFileSuppressions |= ((uint64_t)1 << (-error));
360  UserLineSuppressions |= ((uint64_t)1 << (-error));
361  }
362  }
363  TmpPtr = EscapePtr;
364 
365  while ((TmpPtr = strstr(TmpPtr, LineSuppDelim))) {
366 
367  TmpPtr += STRLEN(LineSuppDelim);
368  error = atoi(TmpPtr);
369 
370  if (abs(error) > MaxSuppressionBits)
371  {
372  PrintPrgErr(pmSuppTooHigh, error, MaxSuppressionBits);
373  }
374 
375  if (error > 0)
376  {
377  LineSuppressions |= ((uint64_t)1 << error);
378  }
379  else
380  {
381  UserLineSuppressions |= ((uint64_t)1 << (-error));
382  }
383  }
384  }
385  break;
386  }
387  TmpPtr++;
388  }
389  return (Buf);
390 }
391 
392 /*
393  * Interpret environments
394  */
395 
396 static void PerformEnv(char *Env, int Begin)
397 {
398  static char VBStr[BUFSIZ] = "";
399 
400  if (HasWord(Env, &MathEnvir))
401  {
402  MathMode += Begin ? 1 : -1;
403  MathMode = max(MathMode, 0);
404  }
405 
406  if (Begin && HasWord(Env, &VerbEnvir))
407  {
408  VerbMode = TRUE;
409  strcpy(VBStr, "\\end{");
410  strcat(VBStr, Env);
411  strcat(VBStr, "}");
412  VerbStr = VBStr;
413  }
414 }
415 
416 static char *SkipVerb(void)
417 {
418  char *TmpPtr = BufPtr;
419  int TmpC;
420 
421  if (VerbMode && BufPtr)
422  {
423  if (!(TmpPtr = strstr(BufPtr, VerbStr)))
424  BufPtr = &BufPtr[strlen(BufPtr)];
425  else
426  {
427  VerbMode = FALSE;
428  BufPtr = &TmpPtr[strlen(VerbStr)];
429  SKIP_AHEAD(BufPtr, TmpC, LATEX_SPACE(TmpC));
430  if (*BufPtr)
432  }
433  }
434  return (TmpPtr);
435 }
436 
437 #define CHECKDOTS(wordlist, dtval) \
438 for(i = 0; (i < wordlist.Stack.Used) && !(Back && Front); i++) \
439  { if(!strafter(PstPtr, wordlist.Stack.Data[i])) \
440  Back = dtval; \
441  if(!strinfront(PrePtr, wordlist.Stack.Data[i])) \
442  Front = dtval; }
443 
444 
445 
446 /*
447  * Checks that the dots are correct
448  */
449 
450 static enum DotLevel CheckDots(char *PrePtr, char *PstPtr)
451 {
452  unsigned long i;
453  int TmpC;
454  enum DotLevel Front = dtUnknown, Back = dtUnknown;
455 
456  if (MathMode)
457  {
458  PrePtr--;
459 #define SKIP_EMPTIES(macro, ptr) macro(ptr, TmpC, \
460 (LATEX_SPACE(TmpC) || (TmpC == '{') || (TmpC == '}')))
461 
462  SKIP_EMPTIES(SKIP_BACK, PrePtr);
463  SKIP_EMPTIES(SKIP_AHEAD, PstPtr);
464 
466 
467  if (!(Front && Back))
468  {
470  }
471  return (Front & Back);
472  }
473  else
474  return (dtLDots);
475 
476 }
477 
478 static const char *Dot2Str(enum DotLevel dl)
479 {
480  const char *Retval = INTERNFAULT;
481  switch (dl)
482  {
483  case dtUnknown:
484  Retval = "\\cdots or \\ldots";
485  break;
486  case dtDots:
487  Retval = "\\dots";
488  break;
489  case dtCDots:
490  Retval = "\\cdots";
491  break;
492  case dtLDots:
493  Retval = "\\ldots";
494  break;
495  }
496  return Retval;
497 }
498 
499 /*
500  * Wipes a command, according to the definition in WIPEARG
501  */
502 
503 static void WipeArgument(const char *Cmd, char *CmdPtr)
504 {
505  unsigned long CmdLen = strlen(Cmd);
506  const char *Format;
507  char *TmpPtr;
508  int c, TmpC;
509 
510  if (Cmd && *Cmd)
511  {
512  TmpPtr = &CmdPtr[CmdLen];
513  Format = &Cmd[CmdLen + 1];
514 
515  while (TmpPtr && *TmpPtr && *Format)
516  {
517  switch (c = *Format++)
518  {
519  case '*':
520  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
521  if (*TmpPtr == '*')
522  TmpPtr++;
523  break;
524  case '[':
525  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
526  if (*TmpPtr == '[')
527  TmpPtr = GetLTXArg(TmpPtr, ArgBuffer, ']', NULL);
528  break;
529  case '(':
530  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
531  if (*TmpPtr == '(')
532  TmpPtr = GetLTXArg(TmpPtr, ArgBuffer, ')', NULL);
533  break;
534  case '{':
535  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
536  TmpPtr = GetLTXArg(TmpPtr, ArgBuffer, GET_TOKEN, NULL);
537  case '}':
538  case ']':
539  case ')':
540  break;
541  default:
542  PrintPrgErr(pmWrongWipeTemp, &Cmd[strlen(Cmd) + 1]);
543  break;
544  }
545  }
546 
547  if (TmpPtr)
548  strwrite(CmdPtr+CmdLen, VerbClear, TmpPtr - CmdPtr - CmdLen);
549  else
550  strxrep(CmdPtr+CmdLen, "()[]{}", *VerbClear);
551  }
552 }
553 
554 /*
555  * Checks italic.
556  *
557  */
558 
559 static void CheckItal(const char *Cmd)
560 {
561  int TmpC;
562  char *TmpPtr;
563  if (HasWord(Cmd, &NonItalic))
564  ItState = itOff;
565  else if (HasWord(Cmd, &Italic))
566  ItState = itOn;
567  else if (HasWord(Cmd, &ItalCmd))
568  {
569  TmpPtr = BufPtr;
570  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
571  if (*TmpPtr == '{')
572  {
573  ItFlag = ItState ? efItal : efNoItal;
574  ItState = itOn;
575  }
576  }
577 }
578 
579 /*
580  * Interpret isolated commands.
581  *
582  */
583 
584 static void PerformBigCmd(char *CmdPtr)
585 {
586  char *TmpPtr;
587  const char *ArgEndPtr;
588  unsigned long CmdLen = strlen(CmdBuffer);
589  int TmpC;
590  enum ErrNum ErrNum;
591  struct ErrInfo *ei;
592 
593  enum DotLevel dotlev, realdl = dtUnknown;
594 
595  TmpPtr = BufPtr;
596  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
597 
598  ArgEndPtr = GetLTXArg(TmpPtr, ArgBuffer, GET_STRIP_TOKEN, NULL);
599 
600  /* Kill `\verb' commands */
601 
602  if (WipeVerb)
603  {
604  if (!strcmp(CmdBuffer, "\\verb"))
605  {
606  if (*BufPtr && (*BufPtr != '*' || BufPtr[1]))
607  {
608  if (*BufPtr == '*')
609  TmpPtr = strchr(&BufPtr[2], BufPtr[1]);
610  else
611  TmpPtr = strchr(&BufPtr[1], *BufPtr);
612  if (TmpPtr)
613  strwrite(CmdPtr, VerbClear, (TmpPtr - CmdPtr) + 1);
614  else
615  PSERR(CmdPtr - Buf, 5, emNoArgFound);
616  }
617  }
618  }
619 
620  if (HasWord(CmdBuffer, &IJAccent))
621  {
622  if (ArgEndPtr)
623  {
624  TmpPtr = ArgBuffer;
625  SKIP_AHEAD(TmpPtr, TmpC, TmpC == '{'); /* } */
626 
627  if ((*TmpPtr == 'i') || (*TmpPtr == 'j'))
629  CmdPtr - Buf,
630  (long) strlen(CmdBuffer), Line,
631  emAccent, CmdBuffer, *TmpPtr,
632  MathMode ? "math" : "");
633  }
634  else
635  PSERR(CmdPtr - Buf, CmdLen, emNoArgFound);
636  }
637 
638  if (HasWord(CmdBuffer, &NotPreSpaced) && isspace((unsigned char)CmdPtr[-1]))
639  PSERRA(CmdPtr - Buf - 1, 1, emRemPSSpace, CmdBuffer);
640 
641  if ((TmpPtr = HasWord(CmdBuffer, &NoCharNext)))
642  {
643  char *BPtr = BufPtr;
644 
645  TmpPtr += strlen(TmpPtr) + 1;
646  SKIP_AHEAD(BPtr, TmpC, LATEX_SPACE(TmpC));
647 
648  if (strchr(TmpPtr, *BPtr))
649  {
650  PSERR2(CmdPtr - Buf, CmdLen, emNoCharMean, CmdBuffer, *BPtr);
651  }
652  }
653 
654  /* LaTeX environment tracking */
655  if (!strcmp(CmdBuffer, "\\begin") || !strcmp(CmdBuffer, "\\end"))
656  {
657  if (ArgEndPtr)
658  {
659  if (!strcmp(ArgBuffer, "document"))
660  InHeader = FALSE;
661 
662  if (CmdBuffer[1] == 'b')
663  {
664  if (!(PushErr(ArgBuffer, Line, CmdPtr - Buf,
665  CmdLen, RealBuf, &EnvStack)))
667  }
668  else
669  {
670  if ((ei = PopErr(&EnvStack)))
671  {
672  if (strcmp(ei->Data, ArgBuffer))
674  CmdPtr - Buf,
675  (long) strlen(CmdBuffer),
676  Line, emExpectC, ei->Data, ArgBuffer);
677 
678  FreeErrInfo(ei);
679  }
680  else
682  CmdPtr - Buf,
683  (long) strlen(CmdBuffer),
685  }
686 
687  PerformEnv(ArgBuffer, (int) CmdBuffer[1] == 'b');
688  }
689  else
690  PSERR(CmdPtr - Buf, CmdLen, emNoArgFound);
691  }
692 
693  /* ConTeXt \start \stop tracking */
694  if (!strncmp(CmdBuffer, "\\start", 6) || !strncmp(CmdBuffer, "\\stop", 5))
695  {
696  if (CmdBuffer[3] == 'a') /* start */
697  {
698  TmpPtr = CmdBuffer + 6;
699  if (!(PushErr(TmpPtr, Line, CmdPtr - Buf + 6,
700  CmdLen - 6, RealBuf, &EnvStack)))
702  }
703  else
704  {
705  TmpPtr = CmdBuffer + 5;
706  if ((ei = PopErr(&EnvStack)))
707  {
708  if (strcmp(ei->Data, TmpPtr))
710  CmdPtr - Buf + 5,
711  (long) strlen(TmpPtr),
712  Line, emExpectC, ei->Data, TmpPtr);
713 
714  FreeErrInfo(ei);
715  }
716  else
717  {
719  CmdPtr - Buf,
720  (long) strlen(CmdBuffer),
721  Line, emSoloC, TmpPtr);
722  }
723  }
724  /* TODO: Do I need to call PerformEnv? */
725  /* It handles math and verbatim environments */
726  }
727 
729 
731  PSERR(CmdPtr - Buf, CmdLen, ErrNum);
732 
733  if (!strcmp(CmdBuffer, "\\cdots"))
734  realdl = dtCDots;
735 
736  if (!strcmp(CmdBuffer, "\\ldots"))
737  realdl = dtLDots;
738 
739  if (!strcmp(CmdBuffer, "\\dots"))
740  realdl = dtLDots;
741 
742  if (realdl != dtUnknown)
743  {
744  dotlev = CheckDots(CmdPtr, BufPtr);
745  if (dotlev && (dotlev != realdl))
746  {
747  const char *cTmpPtr = Dot2Str(dotlev);
748  PSERRA(CmdPtr - Buf, CmdLen, emEllipsis, cTmpPtr);
749  }
750  }
751 
752  if ((TmpPtr = HasWord(CmdBuffer, &WipeArg)))
753  WipeArgument(TmpPtr, CmdPtr);
754 }
755 
756 /*
757  * Check user abbreviations. Pass a pointer to the `.';
758  * also ensure that it's followed by spaces, etc.
759  *
760  * Note: We assume that all abbrevs have been transferred from
761  * AbbrevCase into Abbrev.
762  */
763 
764 static void CheckAbbrevs(const char *Buffer)
765 {
766  long i;
767  char *TmpPtr;
768  const char *AbbPtr;
769 
770  if (INUSE(emInterWord))
771  {
772  TmpPtr = TmpBuffer + Abbrev.MaxLen + 2;
773  *TmpPtr = 0;
774  AbbPtr = Buffer;
775 
776  for (i = Abbrev.MaxLen; i >= 0; i--)
777  {
778  *--TmpPtr = *AbbPtr--;
779  if (!isalpha((unsigned char)*AbbPtr) && HasWord(TmpPtr, &Abbrev))
780  PSERR(Buffer - Buf + 1, 1, emInterWord);
781  if (!*AbbPtr)
782  break;
783  }
784  }
785 }
786 
787 
788 /*
789  * Check misc. things which can't be included in the main loop.
790  *
791  */
792 
793 static void CheckRest(void)
794 {
795  unsigned long Count;
796  long CmdLen;
797  char *UsrPtr;
798 
799  /* Search for user-specified warnings */
800 
801 #if ! (HAVE_PCRE || HAVE_POSIX_ERE)
802 
804  {
807  }
808  else if (INUSE(emUserWarn))
809  {
810  strcpy(TmpBuffer, Buf);
811  }
812 
813 #else
814 
816  {
817  static char error[ERROR_STRING_SIZE];
818  static regmatch_t MatchVector[NUM_MATCHES];
819  int rc;
820  int len = strlen(TmpBuffer);
821  strcpy(TmpBuffer, Buf);
822 
823  /* Compile all regular expressions if not already compiled. */
824  if ( !RegexArray && UserWarnRegex.Stack.Used > 0 )
825  {
826  RegexArray = (regex_t*)malloc( sizeof(regex_t) * UserWarnRegex.Stack.Used );
827  if (!RegexArray)
828  {
829  /* Allocation failed. */
832  NumRegexes = 0;
833  }
834  else
835  {
836  NumRegexes = 0;
838  {
840  char *CommentEnd = NULL;
841 
842  /* See if it's got a special name that it goes by.
843  Only use the comment if it's at the very beginning. */
844  if ( strncmp(pattern,"(?#",3) == 0 )
845  {
846  CommentEnd = strchr(pattern, ')');
847  /* TODO: check for PCRE/POSIX only regexes */
848  if ( CommentEnd != NULL )
849  {
850  *CommentEnd = '\0';
851  /* We're leaking a little here, but this was never freed until exit anyway... */
852  UserWarnRegex.Stack.Data[NumRegexes] = pattern+3;
853 
854  /* Compile past the end of the comment so that it works with POSIX too. */
855  pattern = CommentEnd + 1;
856  }
857  }
858 
859  /* Ignore PCRE and POSIX specific regexes.
860  * This is mostly to make testing easier. */
861  if ( strncmp(pattern,"PCRE:",5) == 0 )
862  {
863  #if HAVE_PCRE
864  pattern += 5;
865  #else
866  continue;
867  #endif
868  }
869  if ( strncmp(pattern,"POSIX:",6) == 0 )
870  {
871  #if HAVE_POSIX_ERE
872  pattern += 6;
873  #else
874  continue;
875  #endif
876  }
877 
878  rc = regcomp((regex_t*)(&RegexArray[NumRegexes]),
879  pattern, REGEX_FLAGS);
880 
881  /* Compilation failed: print the error message */
882  if (rc != 0)
883  {
884  /* TODO: decide whether a non-compiling regex should completely stop, or just be ignored */
885  regerror(rc,(regex_t*)(&RegexArray[NumRegexes]),
886  error, ERROR_STRING_SIZE);
888  }
889  else
890  {
891  if ( !CommentEnd )
892  {
893  ((char*)UserWarnRegex.Stack.Data[NumRegexes])[0] = '\0';
894  }
895  ++NumRegexes;
896  }
897  }
898  }
899  }
900 
901  for (Count = 0; Count < NumRegexes; ++Count)
902  {
903  int offset = 0;
904  char *ErrMessage = UserWarnRegex.Stack.Data[Count];
905  const int NamedWarning = strlen(ErrMessage) > 0;
906 
907  while (offset < len)
908  {
909  /* Check if this warning should be suppressed. */
910  if (UserLineSuppressions && NamedWarning)
911  {
912  /* The warning can be named with positive or negative numbers. */
913  int UserWarningNumber = abs(atoi(ErrMessage));
914  if (UserLineSuppressions & ((uint64_t)1 << UserWarningNumber))
915  {
916  break;
917  }
918  }
919 
920  rc = regexec( (regex_t*)(&RegexArray[Count]), TmpBuffer+offset,
921  NUM_MATCHES, MatchVector, 0);
922  /* Matching failed: handle error cases */
923  if (rc != 0)
924  {
925  switch(rc)
926  {
927  case REG_NOMATCH:
928  /* no match, no problem */
929  break;
930  default:
931  regerror(rc, (regex_t*)(&RegexArray[Count]),
932  error, ERROR_STRING_SIZE);
934  break;
935  }
936 
937  offset = len; /* break out of loop */
938  }
939  else
940  {
941 #define MATCH (MatchVector[0])
942  if ( NamedWarning )
943  {
944  /* User specified error message */
945  PSERR2(offset + MATCH.rm_so, MATCH.rm_eo - MATCH.rm_so,
947  strlen(ErrMessage), ErrMessage);
948  }
949  else
950  {
951  /* Default -- show the match */
952  PSERR2(offset + MATCH.rm_so, MATCH.rm_eo - MATCH.rm_so,
954  /* The format specifier expects an int */
955  (int)(MATCH.rm_eo - MATCH.rm_so),
956  TmpBuffer + offset + MATCH.rm_so);
957  }
958  if ( MATCH.rm_eo == 0 )
959  {
960  /* Break out of loop if the match was empty.
961  * This avoids an infinite loop when the match
962  * is empty, e.g $ */
963  offset = len;
964  }
965  else
966  {
967  offset += MATCH.rm_eo;
968  }
969 #undef MATCH
970  }
971  }
972  }
973  }
974  else if (INUSE(emUserWarn))
975  {
976  strcpy(TmpBuffer, Buf);
977  }
978 
979 #endif
980 
981 
982  if (INUSE(emUserWarn))
983  {
985  {
986  for (UsrPtr = TmpBuffer;
987  (UsrPtr = strstr(UsrPtr, UserWarn.Stack.Data[Count]));
988  UsrPtr++)
989  {
990  CmdLen = strlen(UserWarn.Stack.Data[Count]);
991  PSERRA(UsrPtr - TmpBuffer, CmdLen, emUserWarn, UserWarn.Stack.Data[Count]);
992  }
993  }
994 
995  strlwr(TmpBuffer);
996 
998  {
999  for (UsrPtr = TmpBuffer;
1000  (UsrPtr = strstr(UsrPtr, UserWarnCase.Stack.Data[Count]));
1001  UsrPtr++)
1002  {
1003  CmdLen = strlen(UserWarnCase.Stack.Data[Count]);
1004  PSERRA(UsrPtr - TmpBuffer, CmdLen, emUserWarn, UserWarnCase.Stack.Data[Count]);
1005  }
1006  }
1007  }
1008 }
1009 
1010 
1011 /*
1012  * Checks that the dash-len is correct.
1013  */
1014 
1015 static void CheckDash(void)
1016 {
1017  char *TmpPtr;
1018  int TmpC;
1019  long TmpCount, Len;
1020  struct WordList *wl = NULL;
1021  unsigned long i;
1022  int Errored;
1023  char *PrePtr = &BufPtr[-2];
1024 
1025  TmpPtr = BufPtr;
1026  SKIP_AHEAD(TmpPtr, TmpC, TmpC == '-');
1027  TmpCount = TmpPtr - BufPtr + 1;
1028 
1029  if (MathMode)
1030  {
1031  if (TmpCount > 1)
1032  HERE(TmpCount, emWrongDash);
1033  }
1034  else
1035  {
1036  if (LATEX_SPACE(*PrePtr) && LATEX_SPACE(*TmpPtr))
1037  wl = &WordDash;
1038  if (isdigit((unsigned char)*PrePtr) && isdigit((unsigned char)*TmpPtr))
1039  wl = &NumDash;
1040  if (isalpha((unsigned char)*PrePtr) && isalpha((unsigned char)*TmpPtr))
1041  wl = &HyphDash;
1042 
1043  if (wl)
1044  {
1045  Errored = TRUE;
1046  FORWL(i, *wl)
1047  {
1048  Len = strtol(wl->Stack.Data[i], NULL, 0);
1049  if (TmpCount == Len)
1050  {
1051  Errored = FALSE;
1052  break;
1053  }
1054  }
1055 
1056  if (Errored)
1057  {
1058  struct WordList *el = &DashExcpt;
1059 
1060  FORWL(i, *el)
1061  {
1062  char *exception = el->Stack.Data[i];
1063 
1064  char *e = exception;
1065  while ( *e )
1066  {
1067  if ( *e == '-' && 0 == strncmp( BufPtr, e, strlen(e) ) )
1068  {
1069  char *f = e;
1070  TmpPtr = BufPtr;
1071  while ( f > exception && *(--f) == *(--TmpPtr) )
1072  {
1073  /* Nothing */
1074  }
1075 
1076  if ( f <= exception && *f == *TmpPtr )
1077  {
1078  Errored = FALSE;
1079  break;
1080  }
1081  }
1082 
1083  ++e;
1084  }
1085 
1086  if ( !Errored )
1087  break;
1088  }
1089  }
1090 
1091  if (Errored)
1092  HERE(TmpCount, emWrongDash);
1093  }
1094  }
1095 }
1096 
1097 /*
1098  * Pushes and pops nesting characters.
1099  *
1100  */
1101 
1102 static void HandleBracket(char Char)
1103 {
1104  unsigned long BrOffset; /* Offset into BrOrder array */
1105  struct ErrInfo *ei;
1106  char TmpC, Match;
1107  char ABuf[2], BBuf[2];
1108  char *TmpPtr;
1109 
1110  AddBracket(Char);
1111 
1112  if ((BrOffset = BrackIndex(Char)) != ~0UL)
1113  {
1114  if (BrOffset & 1) /* Closing bracket of some sort */
1115  {
1116  if ((ei = PopErr(&CharStack)))
1117  {
1118  Match = MatchBracket(*(ei->Data));
1119  /* Return italics to proper state */
1120  if (ei->Flags & efNoItal)
1121  {
1122  if (ItState == itOn)
1123  {
1124  TmpPtr = BufPtr;
1125  SKIP_AHEAD(TmpPtr, TmpC, TmpC == '}');
1126 
1127  /* If the next character is a period or comma,
1128  * or the last character is, then it's not an
1129  * error. */
1130  /* Checking 2 characters back seems dangerous,
1131  * but it's already done in CheckDash. */
1132  if ( !strchr(LTX_SmallPunc, *TmpPtr) &&
1133  !strchr(LTX_SmallPunc, *(TmpPtr-2)) )
1134  HERE(1, emNoItFound);
1135  }
1136 
1137  ItState = FALSE;
1138  }
1139  else if (ei->Flags & efItal)
1140  ItState = TRUE;
1141 
1142  /* Same for math mode */
1143  if (ei->Flags & efMath)
1144  {
1145  MathMode = 1;
1146  }
1147  else if (ei->Flags & efNoMath)
1148  {
1149  MathMode = 0;
1150  }
1151 
1152  FreeErrInfo(ei);
1153  }
1154  else
1155  Match = 0;
1156 
1157  if (Match != Char)
1158  {
1159  ABuf[0] = Match;
1160  BBuf[0] = Char;
1161  ABuf[1] = BBuf[1] = 0;
1162  if (Match)
1164  BufPtr - Buf - 1, 1, Line, emExpectC,
1165  ABuf, BBuf);
1166  else
1167  HEREA(1, emSoloC, BBuf);
1168  }
1169 
1170  }
1171  else /* Opening bracket of some sort */
1172  {
1173  if ((ei = PushChar(Char, Line, BufPtr - Buf - 1,
1174  &CharStack, RealBuf)))
1175  {
1176  if (Char == '{')
1177  {
1178  switch (ItFlag)
1179  {
1180  default:
1181  ei->Flags |= ItFlag;
1182  ItFlag = efNone;
1183  break;
1184  case efNone:
1185  ei->Flags |= ItState ? efItal : efNoItal;
1186  }
1187 
1188  switch (MathFlag)
1189  {
1190  default:
1191  ei->Flags |= MathFlag;
1192  MathFlag = efNone;
1193  break;
1194  case efNone:
1195  ei->Flags |= MathMode ? efMath : efNoMath;
1196  }
1197  }
1198  }
1199 
1200  else
1202  }
1203  }
1204 }
1205 
1206 
1207 /*
1208  * Checks to see if CmdBuffer matches any of the words in Silent, or
1209  * any of the regular expressions in SilentCase.
1210  *
1211  */
1212 
1214 {
1215 
1216 #if ! (HAVE_PCRE || HAVE_POSIX_ERE)
1217 
1218  return HasWord(CmdBuffer, &Silent) != NULL;
1219 
1220 #else
1221 
1222  static char error[ERROR_STRING_SIZE];
1223  char *pattern;
1224  char *tmp;
1225  int i;
1226  int rc;
1227  int len = 4; /* Enough for the (?:) */
1228 
1229  /* Initialize regular expression */
1230  if (INUSE(emSpaceTerm) && SilentCase.Stack.Used > 0)
1231  {
1232  /* Find the total length we need */
1233  /* There is 1 for | and the final for null terminator */
1234  FORWL(i, SilentCase)
1235  {
1236  len += strlen( SilentCase.Stack.Data[i] ) + 1;
1237  }
1238 
1239  /* (A|B|...) */
1240  tmp = (pattern = (char*)malloc( sizeof(char) * len ));
1241 
1242  #if HAVE_PCRE
1243  tmp = stpcpy(tmp,"(?:");
1244  #else
1245  tmp = stpcpy(tmp,"(");
1246  #endif
1247 
1248  FORWL(i, SilentCase)
1249  {
1250  tmp = stpcpy(tmp, SilentCase.Stack.Data[i]);
1251  *tmp++ = '|';
1252  }
1253  tmp = stpcpy(tmp - 1, ")");
1254 
1255  SilentRegex = malloc( sizeof(regex_t) );
1256  rc = regcomp(SilentRegex, pattern, REGEX_FLAGS);
1257 
1258  /* Compilation failed: print the error message */
1259  if (rc != 0)
1260  {
1261  regerror(rc, SilentRegex, error, ERROR_STRING_SIZE);
1263  SilentRegex = NULL;
1264  }
1265  /* Ensure we won't initialize it again */
1266  SilentCase.Stack.Used = 0;
1267  free(pattern);
1268  }
1269 
1270  /* Check against the normal */
1271  if ( HasWord(CmdBuffer, &Silent) )
1272  return 1;
1273  if (!SilentRegex)
1274  return 0;
1275 
1276  /* Check against the regexes */
1277  rc = regexec(SilentRegex, CmdBuffer, 0, NULL, 0);
1278  if (rc == 0)
1279  return 1;
1280 
1281  /* Matching failed: handle error cases */
1282  switch(rc)
1283  {
1284  case REG_NOMATCH:
1285  return 0;
1286  break;
1287  default:
1288  regerror(rc, SilentRegex, error, ERROR_STRING_SIZE);
1290  break;
1291  }
1292  return 0;
1293 
1294 #endif
1295 }
1296 
1297 /*
1298  * Searches the `Buf' for possible errors, and prints the errors. `Line'
1299  * is supplied for error printing.
1300  */
1301 
1302 int FindErr(const char *_RealBuf, const unsigned long _Line)
1303 {
1304  char *CmdPtr; /* We'll have to copy each command out. */
1305  char *PrePtr; /* Ptr to char in front of command, NULL if
1306  * the cmd appears as the first character */
1307  char *TmpPtr; /* Temporary pointer */
1308  char *ErrPtr; /* Ptr to where an error started */
1309 
1310  char TmpC, /* Just a temp var used throughout the proc. */
1311  MatchC, Char; /* Char. currently processed */
1312  unsigned long CmdLen; /* Length of misc. things */
1313  int MixingQuotes;
1314 
1315  int (*pstcb) (int c);
1316 
1317  enum DotLevel dotlev;
1318 
1320 
1321  if (_RealBuf)
1322  {
1323  RealBuf = _RealBuf;
1324  Line = _Line;
1325 
1326  if (!LastWasComment)
1327  {
1328  SeenSpace = TRUE;
1329  }
1330  BufPtr = PreProcess();
1331 
1332  BufPtr = SkipVerb();
1333 
1334  /* Skip past leading whitespace which is insignificant in TeX to avoid
1335  * spurious warnings (Delete this space to maintain correct
1336  * pagereferences). If we have seen a space we don't _need_ to skip
1337  * past, and doing so misses Message 30 (Multiple spaces detected). We
1338  * can miss some of Message 30 in the "not SeenSpace" case too, but I
1339  * think it's less important, since Message 30 is for newbies.
1340  */
1341  if (!SeenSpace && BufPtr)
1342  {
1343  SKIP_AHEAD(BufPtr, TmpC, LATEX_SPACE(TmpC));
1344  }
1345 
1346  while (BufPtr && *BufPtr)
1347  {
1348  PrePtr = BufPtr - 1;
1349  Char = *BufPtr++;
1350  if (isspace((unsigned char)Char))
1351  Char = ' ';
1352 
1353  switch (Char)
1354  {
1355  case '~':
1356  TmpPtr = NULL;
1357  if (isspace((unsigned char)*PrePtr))
1358  TmpPtr = PrePtr;
1359  else if (isspace((unsigned char)*BufPtr))
1360  TmpPtr = BufPtr;
1361 
1362  if (TmpPtr)
1363  PSERR(TmpPtr - Buf, 1, emDblSpace);
1364  break;
1365 
1366  case 'X':
1367  case 'x':
1368  TmpPtr = PrePtr;
1369 
1370  SKIP_BACK(TmpPtr, TmpC,
1371  (LATEX_SPACE(TmpC) || strchr("{}$", TmpC)));
1372 
1373  if (isdigit((unsigned char)*TmpPtr))
1374  {
1375  TmpPtr = BufPtr;
1376 
1377  SKIP_AHEAD(TmpPtr, TmpC,
1378  (LATEX_SPACE(TmpC) || strchr("{}$", TmpC)));
1379 
1380  if (isdigit((unsigned char)*TmpPtr))
1381  HERE(1, emUseTimes);
1382  }
1383  /* FALLTHRU */
1384  /* CTYPE: isalpha() */
1385  case 'a':
1386  case 'b':
1387  case 'c':
1388  case 'd':
1389  case 'e':
1390  case 'f':
1391  case 'g':
1392  case 'h':
1393  case 'i':
1394  case 'j':
1395  case 'k':
1396  case 'l':
1397  case 'm':
1398  case 'n':
1399  case 'o':
1400  case 'p':
1401  case 'q':
1402  case 'r':
1403  case 's':
1404  case 't':
1405  case 'u':
1406  case 'v':
1407  case 'w': /* case 'x': */
1408  case 'y':
1409  case 'z':
1410 
1411  case 'A':
1412  case 'B':
1413  case 'C':
1414  case 'D':
1415  case 'E':
1416  case 'F':
1417  case 'G':
1418  case 'H':
1419  case 'I':
1420  case 'J':
1421  case 'K':
1422  case 'L':
1423  case 'M':
1424  case 'N':
1425  case 'O':
1426  case 'P':
1427  case 'Q':
1428  case 'R':
1429  case 'S':
1430  case 'T':
1431  case 'U':
1432  case 'V':
1433  case 'W': /* case 'X': */
1434  case 'Y':
1435  case 'Z':
1436  if (!isalpha((unsigned char)*PrePtr) && (*PrePtr != '\\') && MathMode)
1437  {
1438  TmpPtr = BufPtr;
1439  CmdPtr = CmdBuffer;
1440  do
1441  {
1442  *CmdPtr++ = Char;
1443  Char = *TmpPtr++;
1444  }
1445  while (isalpha((unsigned char)Char));
1446 
1447  *CmdPtr = 0;
1448 
1449  if (HasWord(CmdBuffer, &MathRoman))
1451  }
1452 
1453  break;
1454  case ' ':
1455  TmpPtr = BufPtr;
1456  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
1457 
1458  if (*TmpPtr && *PrePtr)
1459  {
1460  if ((TmpPtr - BufPtr) > 0)
1461  {
1462  HERE(TmpPtr - BufPtr + 1, emMultiSpace);
1463  strwrite(BufPtr, VerbClear, TmpPtr - BufPtr - 1);
1464  }
1465  }
1466  break;
1467 
1468  case '.':
1469  if ((Char == *BufPtr) && (Char == BufPtr[1]))
1470  {
1471  const char *cTmpPtr;
1472  dotlev = CheckDots(&PrePtr[1], &BufPtr[2]);
1473  cTmpPtr = Dot2Str(dotlev);
1474  HEREA(3, emEllipsis, cTmpPtr);
1475  }
1476 
1477  /* Regexp: "([^A-Z@.])\.[.!?:]*\s+[a-z]" */
1478 
1479  TmpPtr = BufPtr;
1480  SKIP_AHEAD(TmpPtr, TmpC, strchr(LTX_EosPunc, TmpC));
1481  if (LATEX_SPACE(*TmpPtr))
1482  {
1483  if (!isupper((unsigned char)*PrePtr) && (*PrePtr != '@') &&
1484  (*PrePtr != '.'))
1485  {
1486  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
1487  if (islower((unsigned char)*TmpPtr))
1488  PSERR(BufPtr - Buf, 1, emInterWord);
1489  else
1490  CheckAbbrevs(&BufPtr[-1]);
1491  }
1492  }
1493 
1494  /* FALLTHRU */
1495  case ':':
1496  case '?':
1497  case '!':
1498  case ';':
1499  /* Regexp: "[A-Z][A-Z][.!?:;]\s+" */
1500 
1501  if (isspace((unsigned char)*BufPtr) && isupper((unsigned char)*PrePtr) &&
1502  (isupper((unsigned char)PrePtr[-1]) || (Char != '.')))
1503  HERE(1, emInterSent);
1504 
1505  /* FALLTHRU */
1506  case ',':
1507  if (isspace((unsigned char)*PrePtr) &&
1508  !(isdigit((unsigned char)*BufPtr) &&
1509  ((BufPtr[-1] == '.') || (BufPtr[-1] == ','))))
1510  PSERR(PrePtr - Buf, 1, emSpacePunct);
1511 
1512  if (MathMode &&
1513  (((*BufPtr == '$') && (BufPtr[1] != '$')) ||
1514  (!strafter(BufPtr, "\\)"))))
1515  HEREA(1, emPunctMath, "outside inner");
1516 
1517  if (!MathMode &&
1518  (((*PrePtr == '$') && (PrePtr[-1] == '$')) ||
1519  (!strinfront(PrePtr, "\\]"))))
1520  HEREA(1, emPunctMath, "inside display");
1521 
1522  break;
1523  case '\'':
1524  case '`':
1525  if ((Char == *BufPtr) && (Char == BufPtr[1]))
1526  {
1528  BufPtr - Buf - 1, 3, Line,
1529  emThreeQuotes,
1530  Char, Char, Char, Char, Char, Char);
1531  }
1532 
1533  if (Char == '\'')
1534  MatchC = '`';
1535  else
1536  MatchC = '\'';
1537 
1538  TmpPtr = BufPtr;
1539  SKIP_AHEAD(TmpPtr, TmpC, TmpC == Char);
1540 
1541  MixingQuotes = FALSE;
1542 
1543  if ((*TmpPtr == MatchC) || (*TmpPtr == '\"') ||
1544  (*TmpPtr == '\xB4')) /* xB4 = latin1 acute accent */
1545  MixingQuotes = TRUE;
1546 
1547  SKIP_AHEAD(TmpPtr, TmpC, strchr("`\'\"\xB4", TmpC)); /* xB4 = latin1 acute accent */
1548 
1549  if (MixingQuotes)
1550  HERE(TmpPtr - BufPtr + 1, emQuoteMix);
1551 
1552  switch (Char)
1553  {
1554  case '\'':
1555  if (isalpha((unsigned char)*TmpPtr) &&
1556  (strchr(LTX_GenPunc, *PrePtr) || isspace((unsigned char)*PrePtr)))
1557  HERE(TmpPtr - BufPtr + 1, emBeginQ);
1558 
1559  /* Now check quote style */
1560 #define ISPUNCT(ptr) (strchr(LTX_GenPunc, *ptr) && (ptr[-1] != '\\'))
1561 
1562  /* We ignore all single words/abbreviations in quotes */
1563 
1564  {
1565  char *WordPtr = PrePtr;
1566  SKIP_BACK(WordPtr, TmpC, (isalnum((unsigned char)TmpC) ||
1567  strchr(LTX_GenPunc, TmpC)));
1568 
1569  if (*WordPtr != '`')
1570  {
1571  if (*PrePtr && (Quote != quTrad)
1572  && ISPUNCT(PrePtr))
1573  PSERRA(PrePtr - Buf, 1,
1574  emQuoteStyle, "in front of");
1575 
1576  if (*TmpPtr && (Quote != quLogic)
1577  && ISPUNCT(TmpPtr))
1578  PSERRA(TmpPtr - Buf, 1,
1579  emQuoteStyle, "after");
1580  }
1581  }
1582 
1583  break;
1584  case '`':
1585  if (isalpha((unsigned char)*PrePtr) &&
1586  (strchr(LTX_GenPunc, *TmpPtr) || isspace((unsigned char)*TmpPtr)))
1587  HERE(TmpPtr - BufPtr + 1, emEndQ);
1588  break;
1589  }
1590  BufPtr = TmpPtr;
1591  break;
1592  case '"':
1593  HERE(1, emUseQuoteLiga);
1594  break;
1595 
1596  case '\264': /* (in Latin-1) */
1597  HERE(1, emUseOtherQuote);
1598  break;
1599 
1600  case '_':
1601  case '^':
1602  if (*PrePtr != '\\')
1603  {
1604  TmpPtr = PrePtr;
1605  SKIP_BACK(TmpPtr, TmpC, LATEX_SPACE(TmpC));
1606 
1607  CmdLen = 1;
1608 
1609  switch (*TmpPtr)
1610  {
1611  /*{ */
1612  case '}':
1613  if (PrePtr[-1] != '\\')
1614  break;
1615 
1616  CmdLen++;
1617  PrePtr--;
1618  /* FALLTHRU */
1619  /*[( */
1620  case ')':
1621  case ']':
1622  PSERR(PrePtr - Buf, CmdLen, emEnclosePar);
1623  }
1624 
1625  TmpPtr = BufPtr;
1626  SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC));
1627 
1628  ErrPtr = TmpPtr;
1629 
1630  if (isalpha((unsigned char)*TmpPtr))
1631  pstcb = &my_isalpha;
1632  else if (isdigit((unsigned char)*TmpPtr))
1633  pstcb = &my_isdigit;
1634  else
1635  break;
1636 
1637  while ((*pstcb) (*TmpPtr++))
1638  ;
1639  TmpPtr--;
1640 
1641  if ((TmpPtr - ErrPtr) > 1)
1642  PSERR(ErrPtr - Buf, TmpPtr - ErrPtr, emEmbrace);
1643  }
1644  break;
1645  case '-':
1646  CheckDash();
1647  break;
1648  case '\\': /* Command encountered */
1650 
1651  if (SeenSpace)
1652  {
1653  /* We must be careful to not point to the "previous space"
1654  * when it was actually on the previous line. This could
1655  * cause us to write into someone else's memory (inside of
1656  * PrintError). */
1657  if (HasWord(CmdBuffer, &Linker))
1658  PSERR( (PrePtr > Buf) ? (PrePtr - Buf) : 0,
1659  1, emNBSpace);
1660  if (HasWord(CmdBuffer, &PostLink))
1661  PSERR( (PrePtr > Buf) ? (PrePtr - Buf) : 0,
1662  1, emFalsePage);
1663  }
1664 
1665  if (LATEX_SPACE(*BufPtr) && !MathMode &&
1666  !CheckSilentRegex() &&
1667  (strlen(CmdBuffer) != 2))
1668  {
1669  PSERR(BufPtr - Buf, 1, emSpaceTerm);
1670  }
1671  else if ((*BufPtr == '\\') && (!isalpha((unsigned char)BufPtr[1])) &&
1672  (!LATEX_SPACE(BufPtr[1])))
1673  PSERR(BufPtr - Buf, 2, emNotIntended);
1674 
1675  PerformBigCmd(PrePtr + 1);
1676  BufPtr = SkipVerb();
1677 
1678  break;
1679 
1680  case '(':
1681  if (*PrePtr && !LATEX_SPACE(*PrePtr) && !isdigit((unsigned char)*PrePtr)
1682  && !strchr("([{`~", *PrePtr))
1683  {
1684  if (PrePtr[-1] != '\\') /* Short cmds */
1685  {
1686  TmpPtr = PrePtr;
1687  SKIP_BACK(TmpPtr, TmpC, istex(TmpC));
1688  if (*TmpPtr != '\\') /* Long cmds */
1689  PSERRA(BufPtr - Buf - 1, 1, emSpaceParen,
1690  "in front of");
1691  }
1692  }
1693  if (isspace((unsigned char)*BufPtr))
1694  PSERRA(BufPtr - Buf, 1, emNoSpaceParen, "after");
1696  break;
1697 
1698  case ')':
1699  if (isspace((unsigned char)*PrePtr))
1700  PSERRA(BufPtr - Buf - 1, 1, emNoSpaceParen,
1701  "in front of");
1702  if (isalpha((unsigned char)*BufPtr))
1703  PSERRA(BufPtr - Buf, 1, emSpaceParen, "after");
1705  break;
1706 
1707  case '}':
1708  case '{':
1709  case '[':
1710  case ']':
1712  break;
1713  case '$':
1714  if (*PrePtr != '\\')
1715  {
1716  if (*BufPtr == '$')
1717  {
1718  BufPtr++;
1719  TmpPtr = BufPtr;
1720  SKIP_AHEAD(TmpPtr, TmpC, (TmpC != '$' && TmpC != '\0'));
1721  PSERR(BufPtr - Buf - 2, TmpPtr-BufPtr+4, emDisplayMath);
1722  }
1723  else
1724  {
1725  TmpPtr = BufPtr;
1726  SKIP_AHEAD(TmpPtr, TmpC, (TmpC != '$' && TmpC != '\0'));
1727  PSERR(BufPtr - Buf - 1, TmpPtr-BufPtr+2, emInlineMath);
1728  }
1729  MathMode ^= TRUE;
1730  }
1731 
1732  break;
1733  }
1734 
1736  }
1737 
1738  if (!VerbMode)
1739  {
1740  CheckRest();
1741  }
1742 
1743  }
1744 
1745  return FoundErr;
1746 }
1747 
1748 /*
1749  * Tries to create plural forms for words. Put a '%s' where a
1750  * suffix should be put, e.g. "warning%s". Watch your %'s!
1751  */
1752 
1753 static void Transit(FILE * fh, unsigned long Cnt, const char *Str)
1754 {
1755  switch (Cnt)
1756  {
1757  case 0:
1758  fputs("No ", fh);
1759  fprintf(fh, Str, "s");
1760  break;
1761  case 1:
1762  fputs("One ", fh);
1763  fprintf(fh, Str, "");
1764  break;
1765  default:
1766  fprintf(fh, "%ld ", Cnt);
1767  fprintf(fh, Str, "s");
1768  break;
1769  }
1770 }
1771 
1772 /*
1773  * Prints the status/conclusion after doing all the testing, including
1774  * bracket stack status, math mode, etc.
1775  */
1776 
1777 void PrintStatus(unsigned long Lines)
1778 {
1779  unsigned long Cnt;
1780  struct ErrInfo *ei;
1781 
1782 
1783  while ((ei = PopErr(&CharStack)))
1784  {
1785  PrintError(ei->File, ei->LineBuf, ei->Column,
1786  ei->ErrLen, ei->Line, emNoMatchC, (char *) ei->Data);
1787  FreeErrInfo(ei);
1788  }
1789 
1790  while ((ei = PopErr(&EnvStack)))
1791  {
1792  PrintError(ei->File, ei->LineBuf, ei->Column,
1793  ei->ErrLen, ei->Line, emNoMatchC, (char *) ei->Data);
1794  FreeErrInfo(ei);
1795  }
1796 
1797  if (MathMode)
1798  {
1799  PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines, emMathStillOn);
1800  }
1801 
1802  for (Cnt = 0L; Cnt < (NUMBRACKETS >> 1); Cnt++)
1803  {
1804  if (Brackets[Cnt << 1] != Brackets[(Cnt << 1) + 1])
1805  {
1806  PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines,
1807  emNoMatchCC,
1808  BrOrder[Cnt << 1], BrOrder[(Cnt << 1) + 1]);
1809  }
1810  }
1811 
1812  if (!Quiet)
1813  {
1814  Transit(stderr, ErrPrint, "error%s printed; ");
1815  Transit(stderr, WarnPrint, "warning%s printed; ");
1816  Transit(stderr, UserSupp, "user suppressed warning%s; ");
1817  Transit(stderr, LineSupp, "line suppressed warning%s.\n");
1818 
1819  /* Print how to suppress warnings. */
1820  if ( ErrPrint + WarnPrint > 0 ) {
1821  fprintf(stderr, "See the manual for how to suppress some or all of these warnings/errors.\n" );
1822  }
1823  }
1824 }
1825 
1826 
1827 
1828 /*
1829  * Uses OutputFormat. Be sure that `String'
1830  * does not contain tabs, newlines, etc.
1831  * Prints a formatted string. Formatting codes understood:
1832  * %b - string to print Between fields (from -s option)
1833  * %c - Column position of error
1834  * %d - lenght of error (Digit)
1835  * %f - current Filename
1836  * %i - Turn on inverse printing mode.
1837  * %I - Turn off inverse printing mode.
1838  * %k - Kind of error (warning, error, message)
1839  * %l - Line number of error
1840  * %m - warning Message
1841  * %n - warning Number
1842  * %u - an Underlining line (like the one which appears when using -v1)
1843  * %r - part of line in front of error ('S' - 1)
1844  * %s - part of line which contains error (String)
1845  * %t - part of line after error ('S' + 1)
1846  */
1847 
1848 
1849 void
1850 PrintError(const char *File, const char *String,
1851  const long Position, const long Len,
1852  const long LineNo, const enum ErrNum Error, ...)
1853 {
1854  static /* Just to reduce stack usage... */
1855  char PrintBuffer[BUFSIZ];
1856  va_list MsgArgs;
1857 
1858  char *LastNorm = OutputFormat;
1859  char *of;
1860  int c;
1861 
1862  enum Context Context;
1863 
1865  {
1866  switch (LaTeXMsgs[Error].InUse)
1867  {
1868  case iuOK:
1870  {
1871  LineSupp++;
1872  }
1873  else
1874  {
1876 
1877  if (!HeadErrOut)
1878  Context |= ctOutHead;
1879 
1880 #define RGTCTXT(Ctxt, Var) if((Context & Ctxt) && !(Var)) break;
1881 
1886 
1887  switch (LaTeXMsgs[Error].Type)
1888  {
1889  case etWarn:
1890  WarnPrint++;
1891  break;
1892  case etErr:
1893  ErrPrint++;
1895  break;
1896  case etMsg:
1897  break;
1898  }
1899 
1900  while ((of = strchr(LastNorm, '%')))
1901  {
1902  c = *of;
1903  *of = 0;
1904 
1905  fputs(LastNorm, OutputFile);
1906 
1907  *of++ = c;
1908 
1909  switch (c = *of++)
1910  {
1911  case 'b':
1913  break;
1914  case 'c':
1915  /* TODO: need to add the offset of the column
1916  * here when long lines are broken. */
1917  fprintf(OutputFile, "%ld", Position + 1);
1918  break;
1919  case 'd':
1920  fprintf(OutputFile, "%ld", Len);
1921  break;
1922  case 'f':
1923  fputs(File, OutputFile);
1924  break;
1925  case 'i':
1927  break;
1928  case 'I':
1930  break;
1931  case 'k':
1932  switch (LaTeXMsgs[Error].Type)
1933  {
1934  case etWarn:
1935  fprintf(OutputFile, "Warning");
1936  break;
1937  case etErr:
1938  fprintf(OutputFile, "Error");
1939  break;
1940  case etMsg:
1941  fprintf(OutputFile, "Message");
1942  break;
1943  }
1944  break;
1945  case 'l':
1946  fprintf(OutputFile, "%ld", LineNo);
1947  break;
1948  case 'm':
1949  va_start(MsgArgs, Error);
1950  vfprintf(OutputFile,
1951  LaTeXMsgs[Error].Message, MsgArgs);
1952  va_end(MsgArgs);
1953  break;
1954  case 'n':
1955  fprintf(OutputFile, "%d", Error);
1956  break;
1957  case 'u':
1958  sfmemset(PrintBuffer, ' ', (long) Position);
1959 
1960  sfmemset(&PrintBuffer[Position], '^', Len);
1961  PrintBuffer[Position + Len] = 0;
1962  fputs(PrintBuffer, OutputFile);
1963  break;
1964  case 'r':
1965  substring(String, PrintBuffer, 0L, Position);
1966  fputs(PrintBuffer, OutputFile);
1967  break;
1968  case 's':
1969  substring(String, PrintBuffer, Position, Len);
1970  fputs(PrintBuffer, OutputFile);
1971  break;
1972  case 't':
1973  substring(String, PrintBuffer,
1974  Position + Len, LONG_MAX);
1975  fputs(PrintBuffer, OutputFile);
1976  break;
1977  default:
1978  fputc(c, OutputFile);
1979  break;
1980  }
1981  LastNorm = of;
1982  }
1983  fputs(LastNorm, OutputFile);
1984  }
1985  break;
1986  case iuNotUser:
1987  UserSupp++;
1988  break;
1989  case iuNotSys:
1990  break;
1991  }
1992  }
1993 }
1994 
1995 /*
1996  * All commands isolated is routed through this command, so we can
1997  * update global statuses like math mode and whether @ is a letter
1998  * or not.
1999  */
2000 
2001 static enum ErrNum PerformCommand(const char *Cmd, char *Arg)
2002 {
2003  const char *Argument = "";
2004  enum ErrNum en = emMinFault;
2005  int TmpC;
2006 
2007  if (!strcmp(Cmd, "\\makeatletter"))
2008  AtLetter = TRUE;
2009  else if (!strcmp(Cmd, "\\makeatother"))
2010  AtLetter = FALSE;
2011  else if (InputFiles && !(strcmp(Cmd, "\\input") && strcmp(Cmd, "\\include")))
2012  {
2013  SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC));
2014  if (*Arg == '{') /* } */
2015  {
2017  Argument = TmpBuffer;
2018  }
2019  else
2020  Argument = strip(Arg, STRP_BTH);
2021 
2022  if (!(Argument && PushFileName(Argument, &InputStack)))
2023  en = emNoCmdExec;
2024  }
2025  else if (HasWord(Cmd, &Primitives))
2026  en = emTeXPrim;
2027  else if (HasWord(Cmd, &MathCmd))
2028  {
2029  SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC));
2030  if (*Arg == '{')
2031  {
2033  MathMode = 1;
2034  }
2035  }
2036  else if (HasWord(Cmd, &TextCmd))
2037  {
2038  SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC));
2039  if (*Arg == '{')
2040  {
2042  MathMode = 0;
2043  }
2044  }
2045  else if (*Cmd == '\\')
2046  {
2047  /* Quicker check of single lettered commands. */
2048  switch (Cmd[1])
2049  {
2050  case '(':
2051  case '[':
2052  MathMode = TRUE;
2053  break;
2054  case ']':
2055  case ')':
2056  MathMode = FALSE;
2057  break;
2058  case '/':
2059  switch (ItState)
2060  {
2061  case itOn:
2062  ItState = itCorrected;
2063  Argument = Arg;
2064 
2065  SKIP_AHEAD(Argument, TmpC, TmpC == '{' || TmpC == '}');
2066 
2067  if (strchr(".,", *Argument))
2068  en = emItPunct;
2069 
2070  break;
2071  case itCorrected:
2072  en = emItDup;
2073  break;
2074  case itOff:
2075  en = emItInNoIt;
2076  }
2077  break;
2078  }
2079  }
2080 
2081  return (en);
2082 }
long __cdecl strtol(char const *_String, char **_EndPtr, int _Radix)
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
struct Stack InputStack
Definition: ChkTeX.c:51
uint64_t FileSuppressions
Definition: ChkTeX.c:201
int WipeVerb
Definition: ChkTeX.c:200
uint64_t UserFileSuppressions
Definition: ChkTeX.c:201
int AtLetter
Definition: ChkTeX.c:201
int HeadErrOut
Definition: ChkTeX.c:200
int VerbMode
Definition: ChkTeX.c:201
FILE * OutputFile
Definition: ChkTeX.c:203
int Quiet
Definition: ChkTeX.c:200
unsigned long ErrPrint
Definition: ChkTeX.c:201
char * VerbStr
Definition: ChkTeX.c:201
int InputFiles
Definition: ChkTeX.c:200
char * TmpBuffer
Definition: ChkTeX.c:74
unsigned long WarnPrint
Definition: ChkTeX.c:201
struct Stack CharStack
Definition: ChkTeX.c:49
unsigned long UserSupp
Definition: ChkTeX.c:201
char BrOrder[6+1]
Definition: ChkTeX.c:61
char * Delimit
Definition: ChkTeX.c:200
unsigned long Brackets[6]
Definition: ChkTeX.c:63
struct Stack EnvStack
Definition: ChkTeX.c:54
int InHeader
Definition: ChkTeX.c:201
unsigned long LineSupp
Definition: ChkTeX.c:201
void PrintPrgErr(enum PrgErrNum Error,...)
Definition: ChkTeX.c:1048
int NoLineSupp
Definition: ChkTeX.c:200
long MathMode
Definition: ChkTeX.c:201
#define LATEX_SPACE(c)
Definition: ChkTeX.h:130
#define INTERNFAULT
Definition: ChkTeX.h:165
#define LONG_MAX
Definition: ChkTeX.h:87
Quote
Definition: ChkTeX.h:349
@ quTrad
Definition: ChkTeX.h:351
@ quLogic
Definition: ChkTeX.h:350
#define NUMBRACKETS
Definition: ChkTeX.h:157
@ pmSuppTooHigh
Definition: ChkTeX.h:270
@ pmRegexMatchingError
Definition: ChkTeX.h:270
@ pmNoRegExp
Definition: ChkTeX.h:270
@ pmNoStackMem
Definition: ChkTeX.h:270
@ pmNoRegexMem
Definition: ChkTeX.h:270
@ pmRegexCompileFailed
Definition: ChkTeX.h:270
@ pmWrongWipeTemp
Definition: ChkTeX.h:270
#define NEWBUF(name, len)
Definition: ChkTeX.h:159
#define betw(a, b, c)
Definition: ChkTeX.h:139
static int ItFlag
Definition: FindErrs.c:157
#define SKIP_AHEAD(ptr, c, check)
Definition: FindErrs.c:97
#define SUPPRESSED_ON_LINE(c)
Definition: FindErrs.c:74
static uint64_t LineSuppressions
Definition: FindErrs.c:145
#define SKIP_EMPTIES(macro, ptr)
static const char * Dot2Str(enum DotLevel dl)
Definition: FindErrs.c:478
#define HEREA(len, err, a)
Definition: FindErrs.c:85
static uint64_t UserLineSuppressions
Definition: FindErrs.c:150
#define my_isalpha
Definition: FindErrs.c:175
#define INUSE(c)
Definition: FindErrs.c:76
static void HandleBracket(char Char)
Definition: FindErrs.c:1102
static char * BufPtr
Definition: FindErrs.c:155
#define PSERR2(pos, len, err, a, b)
Definition: FindErrs.c:79
static const char LTX_EosPunc[]
Definition: FindErrs.c:113
#define CTYPE(func)
Definition: FindErrs.c:68
static char * SkipVerb(void)
Definition: FindErrs.c:416
static void PerformBigCmd(char *CmdPtr)
Definition: FindErrs.c:584
static const char LTX_SmallPunc[]
Definition: FindErrs.c:124
static void CheckAbbrevs(const char *Buffer)
Definition: FindErrs.c:764
static char * PreProcess(void)
Definition: FindErrs.c:298
#define PSERR(pos, len, err)
Definition: FindErrs.c:86
#define CHECKDOTS(wordlist, dtval)
Definition: FindErrs.c:437
int SeenSpace
Definition: FindErrs.c:56
static enum ErrNum PerformCommand(const char *Cmd, char *Arg)
Definition: FindErrs.c:2001
char * CmdBuffer
Definition: FindErrs.c:161
static enum DotLevel CheckDots(char *PrePtr, char *PstPtr)
Definition: FindErrs.c:450
static char * GetLTXArg(char *SrcBuf, char *OrigDest, const int Until, struct WordList *wl)
Definition: FindErrs.c:237
#define istex(c)
Definition: FindErrs.c:67
#define RGTCTXT(Ctxt, Var)
static void Transit(FILE *fh, unsigned long Cnt, const char *Str)
Definition: FindErrs.c:1753
#define SKIP_BACK(ptr, c, check)
Definition: FindErrs.c:90
static unsigned long Line
Definition: FindErrs.c:152
static void PerformEnv(char *Env, int Begin)
Definition: FindErrs.c:396
int LastWasComment
Definition: FindErrs.c:55
#define my_isdigit
Definition: FindErrs.c:169
static char * GetLTXToken(char *Src, char *Dest)
Definition: FindErrs.c:184
#define PSERRA(pos, len, err, a)
Definition: FindErrs.c:82
void PrintStatus(unsigned long Lines)
Definition: FindErrs.c:1777
void PrintError(const char *File, const char *String, const long Position, const long Len, const long LineNo, const enum ErrNum Error,...)
Definition: FindErrs.c:1850
struct ErrMsg LaTeXMsgs[emMaxFault+1]
Definition: FindErrs.c:63
static void CheckDash(void)
Definition: FindErrs.c:1015
#define GET_TOKEN
Definition: FindErrs.c:234
#define ISPUNCT(ptr)
char * ArgBuffer
Definition: FindErrs.c:162
static int MathFlag
Definition: FindErrs.c:158
static const char LTX_GenPunc[]
Definition: FindErrs.c:118
const char FileSuppDelim[]
Definition: FindErrs.c:140
int FindErr(const char *_RealBuf, const unsigned long _Line)
Definition: FindErrs.c:1302
const char LineSuppDelim[]
Definition: FindErrs.c:132
char * Buf
Definition: FindErrs.c:160
int CheckSilentRegex(void)
Definition: FindErrs.c:1213
static void CheckRest(void)
Definition: FindErrs.c:793
static const char * RealBuf
Definition: FindErrs.c:154
int FoundErr
Definition: FindErrs.c:54
#define HERE(len, err)
Definition: FindErrs.c:88
static void WipeArgument(const char *Cmd, char *CmdPtr)
Definition: FindErrs.c:503
#define GET_STRIP_TOKEN
Definition: FindErrs.c:235
static void CheckItal(const char *Cmd)
Definition: FindErrs.c:559
#define ERRMSGS
Definition: FindErrs.h:37
DotLevel
Definition: FindErrs.h:183
@ dtCDots
Definition: FindErrs.h:185
@ dtLDots
Definition: FindErrs.h:186
@ dtDots
Definition: FindErrs.h:187
@ dtUnknown
Definition: FindErrs.h:184
@ ctOutMath
Definition: FindErrs.h:146
@ ctInMath
Definition: FindErrs.h:145
@ ctOutHead
Definition: FindErrs.h:148
@ ctInHead
Definition: FindErrs.h:147
ItState
Definition: FindErrs.h:175
@ itOff
Definition: FindErrs.h:176
@ itCorrected
Definition: FindErrs.h:178
@ itOn
Definition: FindErrs.h:177
ErrNum
Definition: FindErrs.h:137
@ emUserWarnRegex
Definition: FindErrs.h:138
@ emInterSent
Definition: FindErrs.h:138
@ emMultiSpace
Definition: FindErrs.h:138
@ emNoArgFound
Definition: FindErrs.h:138
@ emNoCharMean
Definition: FindErrs.h:138
@ emAccent
Definition: FindErrs.h:138
@ emSpaceTerm
Definition: FindErrs.h:138
@ emNoMatchCC
Definition: FindErrs.h:138
@ emQuoteStyle
Definition: FindErrs.h:138
@ emInlineMath
Definition: FindErrs.h:138
@ emEndQ
Definition: FindErrs.h:138
@ emNoItFound
Definition: FindErrs.h:138
@ emItDup
Definition: FindErrs.h:138
@ emUseOtherQuote
Definition: FindErrs.h:138
@ emEllipsis
Definition: FindErrs.h:138
@ emUserWarn
Definition: FindErrs.h:138
@ emNBSpace
Definition: FindErrs.h:138
@ emQuoteMix
Definition: FindErrs.h:138
@ emNoSpaceParen
Definition: FindErrs.h:138
@ emSpacePunct
Definition: FindErrs.h:138
@ emUseTimes
Definition: FindErrs.h:138
@ emIgnoreText
Definition: FindErrs.h:138
@ emNoMatchC
Definition: FindErrs.h:138
@ emNoCmdExec
Definition: FindErrs.h:138
@ emWordCommand
Definition: FindErrs.h:138
@ emInterWord
Definition: FindErrs.h:138
@ emRemPSSpace
Definition: FindErrs.h:138
@ emFalsePage
Definition: FindErrs.h:138
@ emEnclosePar
Definition: FindErrs.h:138
@ emDisplayMath
Definition: FindErrs.h:138
@ emDblSpace
Definition: FindErrs.h:138
@ emMathStillOn
Definition: FindErrs.h:138
@ emThreeQuotes
Definition: FindErrs.h:138
@ emEmbrace
Definition: FindErrs.h:138
@ emItInNoIt
Definition: FindErrs.h:138
@ emComment
Definition: FindErrs.h:138
@ emSpaceParen
Definition: FindErrs.h:138
@ emExpectC
Definition: FindErrs.h:138
@ emPunctMath
Definition: FindErrs.h:138
@ emTeXPrim
Definition: FindErrs.h:138
@ emWrongDash
Definition: FindErrs.h:138
@ emItPunct
Definition: FindErrs.h:138
@ emBeginQ
Definition: FindErrs.h:138
@ emMaxFault
Definition: FindErrs.h:138
@ emNotIntended
Definition: FindErrs.h:138
@ emSoloC
Definition: FindErrs.h:138
@ emMinFault
Definition: FindErrs.h:138
@ emUseQuoteLiga
Definition: FindErrs.h:138
const char * ReverseOff
Definition: OpSys.c:120
const char * ReverseOn
Definition: OpSys.c:119
struct WordList NotPreSpaced
Definition: Resource.c:39
struct WordList NonItalic
Definition: Resource.c:39
struct WordList MathRoman
Definition: Resource.c:39
struct WordList CenterDots
Definition: Resource.c:39
struct WordList SilentCase
Definition: Resource.c:39
struct WordList IJAccent
Definition: Resource.c:39
const char * VerbClear
Definition: Resource.c:39
struct WordList DashExcpt
Definition: Resource.c:39
struct WordList Italic
Definition: Resource.c:39
struct WordList UserWarn
Definition: Resource.c:39
struct WordList Silent
Definition: Resource.c:39
struct WordList TextCmd
Definition: Resource.c:39
struct WordList HyphDash
Definition: Resource.c:39
struct WordList MathCmd
Definition: Resource.c:39
struct WordList UserWarnCase
Definition: Resource.c:39
struct WordList Primitives
Definition: Resource.c:39
struct WordList Linker
Definition: Resource.c:39
struct WordList LowDots
Definition: Resource.c:39
struct WordList VerbEnvir
Definition: Resource.c:39
struct WordList WipeArg
Definition: Resource.c:39
struct WordList NumDash
Definition: Resource.c:39
struct WordList PostLink
Definition: Resource.c:39
struct WordList WordDash
Definition: Resource.c:39
struct WordList UserWarnRegex
Definition: Resource.c:39
struct WordList MathEnvir
Definition: Resource.c:39
struct WordList NoCharNext
Definition: Resource.c:39
struct WordList Abbrev
Definition: Resource.c:39
struct WordList ItalCmd
Definition: Resource.c:39
const char * CurStkName(struct Stack *stack)
Definition: Utility.c:764
void * sfmemset(void *to, int c, long n)
Definition: Utility.c:114
void ClearWord(struct WordList *WL)
Definition: Utility.c:539
long BrackIndex(const char c)
Definition: Utility.c:943
int PushFileName(const char *Name, struct Stack *stack)
Definition: Utility.c:681
struct ErrInfo * PushErr(const char *Data, const unsigned long Line, const unsigned long Column, const unsigned long ErrLen, const char *LineCpy, struct Stack *Stk)
Definition: Utility.c:828
char * strip(char *str, const enum Strip flags)
Definition: Utility.c:168
void strxrep(char *Buf, const char *Prot, const char To)
Definition: Utility.c:147
int strinfront(const char *Str, const char *Cmp)
Definition: Utility.c:365
struct ErrInfo * PushChar(const char c, const unsigned long Line, const unsigned long Column, struct Stack *Stk, const char *LineCpy)
Definition: Utility.c:816
int strafter(const char *Str, const char *Cmp)
Definition: Utility.c:355
char MatchBracket(const char c)
Definition: Utility.c:983
short substring(const char *source, char *dest, unsigned long pos, long len)
Definition: Utility.c:47
void AddBracket(const char c)
Definition: Utility.c:969
struct ErrInfo * PopErr(struct Stack *Stack)
Definition: Utility.c:901
char * HasWord(const char *Word, struct WordList *WL)
Definition: Utility.c:564
void strwrite(char *To, const char *From, unsigned long Len)
Definition: Utility.c:323
void FreeErrInfo(struct ErrInfo *ei)
Definition: Utility.c:920
@ STRP_BTH
Definition: Utility.h:56
#define strlwr
Definition: Utility.h:162
#define FORWL(ind, list)
Definition: Utility.h:49
#define STRLEN(x)
Definition: Utility.h:102
static char * stpcpy(char *dest, const char *src)
Definition: Utility.h:177
int rc
Definition: bmpfont.h:9
Definition: error.hpp:20
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define free(a)
Definition: decNumber.cpp:310
int strcmp()
Definition: coll.cpp:143
char * strcpy()
i32 Count[10]
Definition: dvibook.c:121
#define error(a)
Definition: dviinfo.c:48
char pattern[8]
Definition: gemtopnm.c:50
mpz_t * f
Definition: gen-fib.c:34
SimBuffer::B Buffer
Definition: gensi.hpp:669
#define c(n)
Definition: gpos-common.c:150
#define strchr
Definition: gsftopk.c:59
#define memmove(d, s, n)
Definition: gsftopk.c:65
#define EXIT_SUCCESS
Definition: cdjpeg.h:175
#define EXIT_FAILURE
Definition: cdjpeg.h:169
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p scientific i
Definition: afcover.h:80
enum OutputFormat_ OutputFormat
unsigned __int64 uint64_t
Definition: stdint.h:90
#define Len
Definition: deflate.h:82
@ MATCH
Definition: inflate.h:45
int atoi(const char *)
char * strstr()
#define fputs
Definition: mendex.h:67
#define fprintf
Definition: mendex.h:64
#define Error
Definition: type1.c:126
#define malloc
Definition: alloca.c:91
@ REG_NOMATCH
Definition: regex.h:310
int regexec(const regex_t *__preg, const char *__string, size_t __nmatch, regmatch_t __pmatch[], int __eflags)
int strncmp()
#define isdigit(c)
Definition: snprintf.c:177
#define Char
Definition: p2c.h:237
#define abs(a)
Definition: pbmplus.h:225
#define max(a, b)
Definition: pbmto4425.c:11
static int offset
Definition: ppmtogif.c:642
#define tolower(ch)
Definition: utype.h:137
#define isspace(ch)
Definition: utype.h:87
#define isupper(ch)
Definition: utype.h:80
#define islower(ch)
Definition: utype.h:79
#define isalpha(ch)
Definition: utype.h:82
#define isalnum(ch)
Definition: utype.h:84
size_t regerror(int errcode, const regex_t *__restrict preg, char *__restrict errbuf, size_t errbuf_size)
Definition: regcomp.c:502
int regcomp(regex_t *__restrict preg, const char *__restrict pattern, int cflags)
Definition: regcomp.c:443
ShellFileEnvironment e
Definition: sh6.c:388
#define Context(d, u)
Definition: spaces.h:93
#define uint64_t
Definition: stdint.in.h:215
Definition: t1part.c:39
unsigned long ErrLen
Definition: ChkTeX.h:281
@ efNoMath
Definition: ChkTeX.h:287
@ efNoItal
Definition: ChkTeX.h:285
@ efNone
Definition: ChkTeX.h:284
@ efItal
Definition: ChkTeX.h:286
@ efMath
Definition: ChkTeX.h:288
char * LineBuf
Definition: ChkTeX.h:279
unsigned long Column
Definition: ChkTeX.h:281
char * File
Definition: ChkTeX.h:280
char * Data
Definition: ChkTeX.h:278
unsigned long Line
Definition: ChkTeX.h:281
enum ErrInfo::@90 Flags
enum Context Context
Definition: FindErrs.h:169
@ iuOK
Definition: FindErrs.h:165
@ etErr
Definition: FindErrs.h:158
Definition: dt2dv.c:55
void ** Data
Definition: Utility.h:72
unsigned long Used
Definition: Utility.h:73
A string of characters.
Definition: t1part.c:49
struct Stack Stack
Definition: Utility.h:80
unsigned long MaxLen
Definition: Utility.h:78
#define FILE
Definition: t1stdio.h:34
*job_name strlen((char *) job_name) - 4)
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
#define BUFSIZ
Definition: ps.c:61
#define va_start(pvar)
Definition: varargs.h:30
#define va_end(pvar)
Definition: varargs.h:38
char * va_list
Definition: varargs.h:22