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)  

system.c
Go to the documentation of this file.
1 /* MS-DOS System Function with Swaping - system (3C)
2  *
3  * MS-DOS System - Copyright (c) 1990,1,2 Data Logic Limited.
4  *
5  * This code is subject to the following copyright restrictions:
6  *
7  * 1. Redistribution and use in source and binary forms are permitted
8  * provided that the above copyright notice is duplicated in the
9  * source form.
10  *
11  * Author:
12  * Ian Stewartson
13  * Data Logic, Queens House, Greenhill Way
14  * Harrow, Middlesex HA1 1YR, UK.
15  * istewart@datlog.co.uk or ukc!datlog!istewart
16  *
17  * $Header: /usr/users/istewart/shell/sh2.3/Release/RCS/system.c,v 2.4 1993/08/25 16:04:22 istewart Exp $
18  *
19  * $Log: system.c,v $
20  * Revision 2.4 1993/08/25 16:04:22 istewart
21  * Add support for new options
22  *
23  * Revision 2.3 1993/06/14 10:59:58 istewart
24  * More changes for 223 beta
25  *
26  * Revision 2.2 1993/06/02 09:52:35 istewart
27  * Beta 223 Updates - see Notes file
28  *
29  * Revision 2.1 1993/01/26 18:35:36 istewart
30  * Fix OS2 version bug (missing semi-colon).
31  *
32  * Revision 2.0 1992/05/21 16:49:54 Ian_Stewartson
33  * MS-Shell 2.0 Baseline release
34  *
35  *
36  * MODULE DEFINITION:
37  *
38  * This is a version of the standard system(3c) library function. The only
39  * difference is that it supports swapping and MS-SHELL EXTENDED_LINE
40  * processing.
41  *
42  * To get the OS2 version, compile with -DOS2
43  *
44  * There are four macros which can be changed:
45  *
46  * GET_ENVIRON To get a variable value from the environment
47  * FAIL_ENVIRON The result on failure
48  * FATAL_ERROR Handle a fatal error message
49  * SHELL_SWITCH The command switch to the SHELL.
50  *
51  * This module replaces the standard Microsoft SYSTEM (3C) call. It should
52  * work with most models. It has been tested in Large and Small model.
53  * When you link a program using the swapper, the swapper front end
54  * (swap.obj) must be the first object model on the linker command line so
55  * that it is located immediately after the PSP. For example:
56  *
57  * link swap+x1+x2+x3+system,x1;
58  * or
59  * cl -o z1 swap.obj x1.obj x2.obj x3.obj system
60  *
61  * The location of the system object is not relevent.
62  */
63 
64 #include <sys/types.h>
65 #include <sys/stat.h>
66 #include <stdio.h>
67 #include <stdlib.h>
68 #include <errno.h>
69 #include <limits.h>
70 #include <ctype.h>
71 #include <fcntl.h>
72 #include <unistd.h>
73 #include <string.h>
74 #include <signal.h>
75 #include <dirent.h>
76 
77 #if defined (__TURBOC__)
78 # include <dir.h>
79 #endif
80 
81 #ifdef DL_MAKE
82 # include "make.h"
83 #endif
84 
85 #if defined(OS2) || defined (__OS2__)
86 # define INCL_DOSSESMGR
87 # define INCL_DOSMEMMGR
88 # define INCL_DOSPROCESS
89 # define INCL_WINSWITCHLIST
90 # define INCL_DOSERRORS
91 # include <os2.h>
92 #else
93 # include <dos.h>
94 #endif
95 
96 #ifdef __OS2__
97 # define F_LOCAL
98 #else
99 # define F_LOCAL near
100 #endif
101 
102 #ifndef P_WAIT
103 # define P_WAIT 0
104 #endif
105 
106 /*
107  * Externals declared by the swapper
108  */
109 
110 #if !defined(OS2) && !defined (__OS2__)
111 extern char far cmd_line[]; /* Command line */
112 extern char far path_line[]; /* Process path */
113 extern unsigned int far SW_intr; /* interrupt pending */
114 extern unsigned int far SW_Blocks; /* Number of blocks to read */
115 extern int far SW_fp; /* File or EMS Handler */
116 extern unsigned int far SW_EMsize; /* Number of extend memory blks */
117 extern unsigned long far SW_EMstart; /* Start addr of extend mem */
118 
119 #define SWAP_TO_DISK 1 /* Swap to disk */
120 #define SWAP_TO_Ext 2 /* Swap to extended memory */
121  /* Not recommended - no mgt */
122 #define SWAP_TO_EMS 3 /* Swap to EMS */
123 #define SWAP_TO_XMS 4 /* Swap to XMS */
124 
125 extern unsigned int far SW_Mode; /* Type of swapping to do */
126 extern unsigned int far SW_EMSFrame; /* EMS Frame segment */
127 extern bool far SW_I23_InShell; /* In the shell */
128 
129 /* Functions */
130 
131 static void F_LOCAL ClearSwapFile (void);
132 extern int far SA_spawn (char **);
133 extern void (interrupt far *SW_I23_V) (void); /* Int 23 address */
134 extern void (far *SW_XMS_Driver) (void); /* XMS Driver Interface */
135 extern int far SW_XMS_Gversion (void);
136 extern int far SW_XMS_Allocate (unsigned int);
137 extern int far SW_XMS_Free (int);
138 extern unsigned int far SW_XMS_Available (void);
139 extern void interrupt far SW_Int23 (void); /* Int 23 New address */
140 extern void interrupt far SW_Int00 (void); /* Int 00 New address */
141 #endif
142 
143 #define FFNAME_MAX (PATH_MAX + NAME_MAX + 3)
144 
145 /*
146  * Convert to bool
147  */
148 
149 #define C2bool(c) (bool)((c) ? TRUE : FALSE)
150 
151 /* Set these to the appropriate values to get environment variables. For
152  * make the following values work. Normally, getenv and (char *)NULL should
153  * be used.
154  */
155 
156 #ifdef DL_MAKE
157 #define GET_ENVIRON(p) GetMacroValue (p)
158 #define FAIL_ENVIRON Nullstr
159 #define FATAL_ERROR(a) PrintFatalError (a)
160 #define SHELL_SWITCH "-ec"
161 #define WINDOW_NAME "DL Make"
162 #else
163 #define FATAL_ERROR(a) { fputs (a, stderr); fputc ('\n', stderr); exit (1); }
164 #define GET_ENVIRON(p) getenv (p)
165 #define FAIL_ENVIRON (char *)NULL
166 #define SHELL_SWITCH "-c"
167 #ifdef TEST
168 #define WINDOW_NAME "TEST"
169 #else
170 #define WINDOW_NAME
171 #endif
172 #endif
173 
174 /* Declarations */
175 
176  /* Open in create mode for swap file */
177 #define O_SMASK (O_RDWR | O_CREAT | O_TRUNC | O_BINARY)
178 
179 /*
180  * Result from FindLocationOfExecutable
181  */
182 
183 #define EXTENSION_NOT_FOUND 0 /* Cannot find file */
184 #define EXTENSION_EXECUTABLE 1 /* OS/2 or DOS .exe or .com */
185 
186 /*
187  * Some MSDOS Swapper info
188  */
189 
190 #if !defined(OS2) && !defined (__OS2__)
191 #define CMD_LINE_MAX 127 /* Max command line length */
192 
193 /* MSDOS Memory Control Block chain structure */
194 
195 #pragma pack (1)
196 struct MCB_list {
197  char MCB_type; /* M or Z */
198  unsigned int MCB_pid; /* Process ID */
199  unsigned int MCB_len; /* MCB length */
200 };
201 #pragma pack ()
202 
203 #define MCB_CON 'M' /* More MCB's */
204 #define MCB_END 'Z' /* Last MCB's */
205 
206 /* Swap Mode */
207 
208 #define SWAP_OFF 0x0000 /* No swapping */
209 #define SWAP_DISK 0x0001 /* Disk only */
210 #define SWAP_EXTEND 0x0002 /* Extended memory */
211 #define SWAP_EXPAND 0x0004 /* Expanded memory */
212 
214 static char *NoSwapFiles = "No Swap files";
215 static char *MS_emsg = "WARNING - %s Error (%x)";
216 static char *MS_Space = "WARNING - %s out of space";
217 static char *SwapFailed = "%s swap failed (%x)";
218 static char *Swap_File = (char *)NULL; /* Swap file */
219 #endif
220 
221 static char *Extend_file = (char *)NULL;
222 
223 #if defined (OS2) || defined (__OS2__)
224 
225 #define CMD_LINE_MAX 16000
226 #define EXTENSION_COUNT 2
227 static char *Extensions [] = { "", ".exe"};
228 static char path_line[FFNAME_MAX]; /* Execution path */
229 static char FailName[NAME_MAX + PATH_MAX + 3];
230 
231 #else
232 
233 #define EXTENSION_COUNT 3
234 static char *Extensions [] = { "", ".exe", ".com"};
235 
236 #endif
237 
238 /*
239  * Word List structure
240  */
241 
242 typedef struct wdblock {
243  short w_bsize;
244  short w_nword;
245  char *w_words[1];
247 
248 /*
249  * Extract field from a line
250  */
251 
252 typedef struct Fields {
253  FILE *FP; /* File handler */
254  char *Line; /* Line buffer */
255  int LineLength; /* Line Length */
256  Word_B *Fields; /* ptr to the start of fields */
258 
259 /*
260  * Program type
261  */
262 
263 static struct ExecutableProcessing {
264  char *Name;
265  unsigned int Flags;
266  unsigned char FieldSep;
268 
269 /* Flags set a bit to indicate program mode */
270 
271 #define EP_NONE 0x000 /* Use PSP command line */
272 #define EP_DOSMODE 0x001 /* Use DOS mode extended line */
273 #define EP_UNIXMODE 0x002 /* Use UNIX mode extended line */
274 #define EP_NOEXPAND 0x004 /* Use -f for this command */
275 #define EP_ENVIRON 0x008 /* Use environ for variable */
276 #define EP_NOSWAP 0x010 /* Do not swap for this command */
277 #define EP_COMSPEC 0x020 /* Special for .bat files */
278 #define EP_EXPORT 0x040 /* Use -m for this command */
279 #define EP_CONVERT 0x080 /* Use conversion */
280 #define EP_NOWORDS 0x100 /* Do word expansion */
281 #define EP_NOQUOTE 0x200 /* No quote protection */
282 
283 /*
284  * Missing errno values
285  */
286 
287 #ifndef EIO
288 # define EIO 105 /* I/O error */
289 #endif
290 
291 #ifndef E2BIG
292 # define E2BIG 107 /* Arg list too long */
293 #endif
294 
295 #ifndef ENOTDIR
296 # define ENOTDIR 120 /* Not a directory */
297 #endif
298 
299 /*
300  * Common fields in EXTENDED_LINE file
301  */
302 
303 #define COMMON_FIELD_COUNT 5
304 
305 static struct CommonFields {
306  char *Name;
307  unsigned int Flag;
308 } CommonFields [] = {
309  { "switch", EP_CONVERT },
310  { "export", EP_EXPORT },
311  { "noswap", EP_NOSWAP },
312  { "noquotes", EP_NOQUOTE }
313 };
314 
315 /*
316  * Functions
317  */
318 
319 #if !defined(OS2) && !defined (__OS2__)
320 static bool F_LOCAL Get_XMS_Driver (void);
321 static bool F_LOCAL Get_EMS_Driver (void);
322 static bool F_LOCAL EMS_error (char *, int);
323 static bool F_LOCAL XMS_error (char *, int);
324 static int F_LOCAL XMS_Close (void);
325 static int F_LOCAL EMS_Close (void);
326 static int F_LOCAL SwapToDiskError (int, char *);
327 static int F_LOCAL SwapToMemory (int);
328 static void F_LOCAL SetUpSwapper (void);
329 #endif
330 
331 static void F_LOCAL S_getcwd (char *, int);
332 static int F_LOCAL CountDoubleQuotes (char *);
333 static bool F_LOCAL IsValidVariableName (char *);
334 static int F_LOCAL CountNumberArguments (char **);
335 static bool F_LOCAL ConvertNumericValue (char *, long *, int);
336 static bool F_LOCAL CheckParameterLength (char **);
337 static int F_LOCAL WordBlockSize (Word_B *);
338 static Word_B * F_LOCAL AddWordToBlock (char *, Word_B *);
339 static void F_LOCAL ClearExtendedLineFile (void);
340 static int F_LOCAL ExecuteProgram (char *, char **);
341 static int F_LOCAL FindLocationOfExecutable (char *, char *);
342 static char * F_LOCAL GenerateTemporaryFileName (void);
343 static char * F_LOCAL BuildNextFullPathName (char *, char *, char *);
344 static void F_LOCAL CheckProgramMode (char *);
345 static unsigned int F_LOCAL CheckForCommonOptions (LineFields *, int);
346 static void F_LOCAL SetCurrentDrive (unsigned int);
347 static int F_LOCAL SpawnProcess (void);
348 static int F_LOCAL BuildCommandLine (char *, char **);
349 static char * F_LOCAL GenerateFullExecutablePath (char *);
350 static bool F_LOCAL WriteToExtendedFile (FILE *, char *);
351 static size_t F_LOCAL WhiteSpaceLength (char *, bool *);
352 static int F_LOCAL StartTheProcess (char *, char **);
353 static char ** F_LOCAL ProcessSpaceInParameters (char **);
354 static void F_LOCAL ConvertPathToFormat (char *);
355 static char * F_LOCAL BuildOS2String (char **, char);
356 static int ExtractFieldsFromLine (LineFields *);
357 static Word_B * F_LOCAL SplitString (char *, Word_B *);
358 #if defined(OS2) || defined (__OS2__)
359 static void F_LOCAL SetWindowName (void);
360 static int F_LOCAL OS2_DosExecProgram (char *, char **);
361 static char * F_LOCAL InsertCharacterAtStart (char *);
362 #endif
363 
364 #if defined(M_I86LM)
365 #define FAR_strcpy strcpy
366 #define FAR_memcpy memcpy
367 #define FAR_memcmp memcmp
368 #else
369 #define FAR_strcpy _fstrcpy
370 #define FAR_memcpy _fmemcpy
371 #define FAR_memcmp _fmemcmp
372 #endif
373 
374 
375 /*
376  * Test program
377  */
378 
379 #ifdef TEST
380 int main (int argc, char **argv)
381 {
382  int i;
383 
384  for (i = 1; i < argc; i++)
385  printf ("Result = %d\n", system (argv[i]));
386 
387  return 0;
388 }
389 #endif
390 
391 /*
392  * System function with swapping
393  */
394 
395 int system (char const *arg2)
396 {
397  char *argv[4];
398  char *ep;
399  int res, serrno, len;
400  char p_name[PATH_MAX + NAME_MAX + 3];
401  char cdirectory[PATH_MAX + 4]; /* Current directory */
402  char *SaveEV = (char *)NULL;
403  bool UsedComSpec = FALSE;
404 
405 /* Set up argument array */
406 
407  argv[1] = SHELL_SWITCH;
408 
409  if ((argv[0] = GET_ENVIRON ("SHELL")) == FAIL_ENVIRON)
410  {
411  argv[0] = GET_ENVIRON ("COMSPEC");
412  argv[1] = "/c";
413  UsedComSpec = TRUE;
414  }
415 
416  if (argv[0] == FAIL_ENVIRON)
417  FATAL_ERROR ("No Shell available");
418 
419  argv[2] = (char *)arg2;
420  argv[3] = (char *)NULL;
421 
422 /* Check to see if the file exists. First check for command.com to use /
423  * instead of -
424  */
425 
426  if ((ep = strrchr (argv[0], '/')) == (char *)NULL)
427  ep = argv[0];
428 
429  else
430  ++ep;
431 
432 /* Check the program mode */
433 
435 
436 /* Check for command.com */
437 
438 #if !defined(OS2) && !defined (__OS2__)
439  if (!stricmp (ep, "command.com") || !stricmp (ep, "command"))
440  {
441  union REGS r;
442 
443  r.x.ax = 0x3700;
444  intdos (&r, &r);
445 
446  if ((r.h.al == 0) && (_osmajor < 4))
447  *argv[1] = (char)(r.h.dl);
448 
451  }
452 #endif
453 
454 /* If we used COMSPEC, default to NOQUOTES */
455 
456  if (UsedComSpec)
458 
459 /* Convert arguments. If this is COMSPEC for a batch file command, skip over
460  * the first switch
461  */
462 
464  len = 2;
465 
466 /*
467  * Convert from UNIX to DOS format: Slashes to Backslashes in paths and
468  * dash to slash for switches
469  */
470 
472  {
473  while ((ep = argv[len++]) != (char *)NULL)
474  {
475  ConvertPathToFormat (ep);
476 
477  if (*ep == '-')
478  *ep = '/';
479  }
480  }
481 
482 /* Save the current directory */
483 
484  getcwd (cdirectory, PATH_MAX + 3);
485 
486 /* If pass in environment, set up environment variable */
487 
489  {
490  if ((SaveEV = GET_ENVIRON (ExecProcessingMode.Name)) != FAIL_ENVIRON)
491  SaveEV = strdup (ExecProcessingMode.Name);
492 
493 /* Get some space for the environment variable */
494 
495  if ((ep = malloc (strlen (ExecProcessingMode.Name) + strlen (argv[1]) +
496  strlen (argv[2]) + 3)) == (char *)NULL)
497  {
498  if (SaveEV != (char *)NULL)
499  free (SaveEV);
500 
502  return -1;
503  }
504 
505  sprintf (ep, "%s=%s%c%s", ExecProcessingMode.Name, argv[1],
507 
508 /* Stick it in the environment */
509 
510  if (putenv (ep))
511  {
513  return -1;
514  }
515 
517  argv[2] = (char *)NULL;
518  }
519 
520 /* Start off on the search path for the executable file */
521 
522  res = (FindLocationOfExecutable (p_name, argv[0]))
523  ? ExecuteProgram (p_name, argv) : -1;
524 
525  serrno = errno;
526 
527 /* Restore the current directory */
528 
529  SetCurrentDrive (tolower(*cdirectory) - 'a' + 1);
530 
531  if (chdir (&cdirectory[2]) != 0)
532  {
533  fputs ("system: WARNING - current directory reset to /\n", stderr);
534  chdir ("/");
535  }
536 
537 /* Clean up environment. Restore original value */
538 
540  {
542 
543  if (SaveEV != (char *)NULL)
544  len += strlen (SaveEV);
545 
546  if ((ep = malloc (len)) != (char *)NULL)
547  {
548  sprintf (ep, "%s=", ExecProcessingMode.Name,
549  (SaveEV == (char *)NULL) ? "" : SaveEV);
550 
551  putenv (ep);
552  }
553 
554 /* Release memory */
555 
556  if (SaveEV != (char *)NULL)
557  free (SaveEV);
558 
560  }
561 
562  errno = serrno;
563  return res;
564 }
565 
566 /*
567  * Exec or spawn the program ?
568  */
569 
570 static int F_LOCAL ExecuteProgram (char *path, char **parms)
571 {
572  int res;
573 #if !defined (OS2) && !defined (__OS2__)
574  char *ep;
575  unsigned int size = 0;
576  int serrno;
577  unsigned int c_cur = (unsigned int)(_psp - 1);
578  struct MCB_list *mp = (struct MCB_list *)((unsigned long)c_cur << 16L);
579 #endif
580 
581 /* Check to see if the file exists */
582 
583  strcpy (path_line, path);
584 
585 /* Check we have access to the file */
586 
587  if (access (path_line, F_OK) != 0)
588  return -1;
589 
590 /* Process the command line. If no swapping, we have executed the program */
591 
592  res = BuildCommandLine (path_line, parms);
593 
594 #if defined (OS2) || defined (__OS2__)
595  SetWindowName ();
597  return res;
598 #else
599  if ((Swap_Mode == SWAP_OFF) || res)
600  {
602  return res;
603  }
604 
605 /* Find the length of the swap area */
606 
607  while ((mp = (struct MCB_list *)((unsigned long)c_cur << 16L))->MCB_type
608  == MCB_CON)
609  {
610  if (c_cur >= 0x9ffe)
611  break;
612 
613  if ((mp->MCB_pid != _psp) && (mp->MCB_pid != 0) &&
614  (mp->MCB_type != MCB_END))
615  {
617  FATAL_ERROR ("Fatal: Memory chain corrupt");
618  return -1;
619  }
620 
621  c_cur += (mp->MCB_len + 1);
622  size += mp->MCB_len + 1;
623  }
624 
625 /*
626  * Convert swap size from paragraphs to 16K blocks.
627  */
628 
629  if (size == 0)
630  size = mp->MCB_len + 1;
631 
632  SW_Blocks = (size / 0x0400) + 1;
633 
634 /* OK Now we've set up the FCB's, command line and opened the swap file.
635  * Get some sys info for the swapper and execute my little assembler
636  * function to swap us out
637  */
638 
639 /* Ok - 3 methods of swapping */
640 
641 /* If expanded memory - try that */
642 
643  if ((Swap_Mode & SWAP_EXPAND) && Get_EMS_Driver ())
644  {
645  SW_Mode = 3; /* Set Expanded memory swap */
646 
647  if ((res = SwapToMemory (SWAP_EXPAND)) != -2)
648  return res;
649  }
650 
651  if ((Swap_Mode & SWAP_EXTEND) && Get_XMS_Driver ())
652  {
653  SW_Mode = (SW_fp == -1) ? 2 : 4;/* Set Extended memory or XMS driver */
654 
655  if ((res = SwapToMemory (SWAP_EXTEND)) != -2)
656  return res;
657 
658  Swap_Mode &= ~~SWAP_EXTEND;
659  }
660 
661 /* Try the disk if available */
662 
663  if (Swap_Mode & SWAP_DISK)
664  {
666 
667  if (SW_fp < 0)
668  return SwapToDiskError (ENOSPC, NoSwapFiles);
669 
670 /* Save the swap file name ? */
671 
672  if ((Swap_File = strdup (ep)) == (char *)NULL)
673  Swap_File = (char *)NULL;
674 
675  SW_Mode = 1; /* Set Disk file swap */
676 
677 /* Execute the program */
678 
679  res = SpawnProcess ();
680 
681 /* Close the extended command line file */
682 
684 
685 /* Check for out of swap space */
686 
687  if (res == -2)
688  return SwapToDiskError (errno, "Swap file write failed");
689 
690 /* Close the swap file */
691 
692  serrno = errno;
693  ClearSwapFile ();
694  errno = serrno;
695 
696 /* Return the result */
697 
698  return res;
699  }
700 
701 /* No swapping available - give up */
702 
704  fputs ("system: WARNING - All Swapping methods failed\n", stderr);
706  errno = ENOSPC;
707  return -1;
708 #endif
709 }
710 
711 /*
712  * Find the location of an executable and return it's full path
713  * name
714  */
715 
716 static int F_LOCAL FindLocationOfExecutable (char *FullPath, char *name)
717 {
718  char *sp; /* Path pointers */
719  char *ep;
720  char *xp; /* In file name pointers */
721  char *xp1;
722  int i;
723 
724 /* Scan the path for an executable */
725 
726  sp = ((strchr (name, '/') != (char *)NULL) ||
727  (*(name + 1) == ':')) ? ""
728  : GET_ENVIRON ("PATH");
729 
730  if (sp == (char *)NULL)
731  sp = "";
732 
733  do
734  {
735  sp = BuildNextFullPathName (sp, name, FullPath);
736  ep = &FullPath[strlen (FullPath)];
737 
738 /* Get start of file name */
739 
740  if ((xp1 = strrchr (FullPath, '/')) == (char *)NULL)
741  xp1 = FullPath;
742 
743  else
744  ++xp1;
745 
746 /* Look up all 5 types */
747 
748  for (i = 0; i < EXTENSION_COUNT; i++)
749  {
750  strcpy (ep, Extensions[i]);
751 
752  if (access (FullPath, F_OK) == 0)
753  {
754 
755 /* If no extension or .sh extension, check for shell script */
756 
757  if ((xp = strrchr (xp1, '.')) == (char *)NULL)
758  continue;
759 
760  else if (!stricmp (xp, ".exe") ||
761  !stricmp (xp, ".com"))
762  return EXTENSION_EXECUTABLE;
763  }
764  }
765  } while (sp != (char *)NULL);
766 
767 /* Not found */
768 
769  errno = ENOENT;
770  return EXTENSION_NOT_FOUND;
771 }
772 
773 
774 /*
775  * Check the program type
776  */
777 
778 static void F_LOCAL CheckProgramMode (char *Pname)
779 {
780  char *sp, *sp1; /* Line pointers */
781  int nFields;
782  char *SPname;
783  LineFields LF;
784  long value;
785 
786 /* Set not found */
787 
789 
790 /* Check not a function */
791 
792  if ((Pname == (char *)NULL) ||
793  ((sp = GET_ENVIRON ("EXTENDED_LINE")) == FAIL_ENVIRON))
794  return;
795 
796 /* Get some memory for the input line and the file name */
797 
798  sp1 = ((sp1 = strrchr (Pname, '/')) == (char *)NULL) ? Pname : sp1 + 1;
799 
800  if (*(sp1 + 1) == ':')
801  sp1 += 2;
802 
803  if ((SPname = strdup (sp1)) == (char *)NULL)
804  return;
805 
806  if ((LF.Line = calloc (LF.LineLength = 200, 1)) == (char *)NULL)
807  {
808  free ((void *)SPname);
809  return;
810  }
811 
812 /* Remove terminating .exe etc */
813 
814  if ((sp1 = strrchr (SPname, '.')) != (char *)NULL)
815  *sp1 = 0;
816 
817 /* Open the file */
818 
819  if ((LF.FP = fopen (sp, "r")) == (FILE *)NULL)
820  {
821  free ((void *)LF.Line);
822  free ((void *)SPname);
823  return;
824  }
825 
826 /* Initialise the internal buffer */
827 
828  LF.Fields = (Word_B *)NULL;
829 
830 /* Scan for the file name */
831 
832  while ((nFields = ExtractFieldsFromLine (&LF)) != -1)
833  {
834  if (nFields < 2)
835  continue;
836 
837 /* Remove terminating .exe etc */
838 
839  if ((sp = strrchr (LF.Fields->w_words[0], '.')) != (char *)NULL)
840  *sp = 0;
841 
842  if (stricmp (LF.Fields->w_words[0], SPname))
843  continue;
844 
845 /* What type? */
846 
847  if (stricmp (LF.Fields->w_words[1], "unix") == 0)
848  ExecProcessingMode.Flags = (unsigned int )(EP_UNIXMODE |
849  CheckForCommonOptions (&LF, 2));
850 
851  else if (stricmp (LF.Fields->w_words[1], "dos") == 0)
852  ExecProcessingMode.Flags = (unsigned int )(EP_DOSMODE |
853  CheckForCommonOptions (&LF, 2));
854 
855 /* Must have a valid name and we can get memory for it */
856 
857  else if ((stricmp (LF.Fields->w_words[1], "environ") == 0) &&
858  (nFields >= 3) &&
859  (!IsValidVariableName (LF.Fields->w_words[2])) &&
861  strdup (LF.Fields->w_words[2])) != (char *)NULL))
862  {
865 
866  if ((nFields >= 4) &&
867  ConvertNumericValue (LF.Fields->w_words[3], &value, 0))
868  ExecProcessingMode.FieldSep = (unsigned char)value;
869 
872  }
873 
874  else
876 
877  break;
878  }
879 
880  fclose (LF.FP);
881  free ((void *)LF.Line);
882  free ((void *)SPname);
883 }
884 
885 /*
886  * Check for common fields
887  */
888 
889 static unsigned int F_LOCAL CheckForCommonOptions (LineFields *LF, int Start)
890 {
891  unsigned int Flags = 0;
892  int i, j;
893 
894  if (LF->Fields == (Word_B *)NULL)
895  return 0;
896 
897  for (i = Start; i < LF->Fields->w_nword; i++)
898  {
899  for (j = 0; j < COMMON_FIELD_COUNT; ++j)
900  {
901  if (!stricmp (LF->Fields->w_words[i], CommonFields[j].Name))
902  {
903  Flags |= CommonFields[j].Flag;
904  break;
905  }
906  }
907  }
908 
909  return Flags;
910 }
911 
912 /*
913  * Convert path format to DOS format
914  */
915 
916 static void F_LOCAL ConvertPathToFormat (char *path)
917 {
918  while ((path = strchr (path, '/')) != (char *)NULL)
919  *path = '\\';
920 }
921 
922 /*
923  * Set the current drive number and return the number of drives.
924  */
925 
926 static void F_LOCAL SetCurrentDrive (unsigned int drive)
927 {
928 #if defined (OS2) || defined (__OS2__)
929  DosSelectDisk ((USHORT)drive);
930 
931 #elif defined (__TURBOC__)
932  return setdisk (cdr - 1);
933 
934 #else
935  unsigned int ndrives;
936 
937  _dos_setdrive (drive, &ndrives);
938 #endif
939 }
940 
941 
942 /*
943  * Clear Extended command line file
944  */
945 
946 static void F_LOCAL ClearExtendedLineFile (void)
947 {
948  if (Extend_file != (char *)NULL)
949  {
951  free ((void *)Extend_file);
952  }
953 
954  Extend_file = (char *)NULL;
955 }
956 
957 
958 /* Set up command line. If the EXTENDED_LINE variable is set, we create
959  * a temporary file, write the argument list (one entry per line) to the
960  * this file and set the command line to @<filename>. If NOSWAPPING, we
961  * execute the program because I have to modify the argument line
962  */
963 
964 static int F_LOCAL BuildCommandLine (char *path, char **argv)
965 {
966  char **pl = argv;
967  FILE *fd;
968  bool found;
969  char *new_args[3];
970 #if defined (OS2) || defined (__OS2__)
971  char cmd_line[NAME_MAX + PATH_MAX + 3];
972 #endif
973 
974 /* Translate process name to MSDOS format */
975 
976  if (GenerateFullExecutablePath (path) == (char *)NULL)
977  return -1;
978 
979 /* Extended command line processing */
980 
981  Extend_file = (char *)NULL; /* Set no file */
984 
985 /* Set up a blank command line */
986 
987  cmd_line[0] = 0;
988  cmd_line[1] = 0x0d;
989 
990 /* If there are no parameters, or they fit in the DOS command line
991  * - start the process */
992 
993  if ((*(++pl) == (char *)NULL) || CheckParameterLength (pl))
994  return StartTheProcess (path, argv);
995 
996 /* If we can use an alternative approach - indirect files, use it */
997 
998  else if (found)
999  {
1000  char **pl1 = pl;
1001 
1002 /* Check parameters don't contain a re-direction parameter */
1003 
1004  while (*pl1 != (char *)NULL)
1005  {
1006  if (**(pl1++) == '@')
1007  {
1008  found = FALSE;
1009  break;
1010  }
1011  }
1012 
1013 /* If we find it - create a temporary file and write the stuff */
1014 
1015  if ((found) &&
1017  "w")) != (FILE *)NULL))
1018  {
1019  if ((Extend_file = strdup (Extend_file)) == (char *)NULL)
1020  Extend_file = (char *)NULL;
1021 
1022 /* Copy to end of list */
1023 
1024  do
1025  {
1026  if (!WriteToExtendedFile (fd, *pl))
1027  return -1;
1028  } while (*(pl++) != (char *)NULL);
1029 
1030 /* Set up cmd_line[1] to contain the filename */
1031 
1032 #if defined (OS2) || defined (__OS2__)
1033  memset (cmd_line, 0, NAME_MAX + PATH_MAX + 3);
1034 #else
1036 #endif
1037  cmd_line[1] = ' ';
1038  cmd_line[2] = '@';
1039  strcpy (&cmd_line[3], Extend_file);
1040  cmd_line[0] = (char)(strlen (Extend_file) + 2);
1041 
1042 /* Correctly terminate cmd_line in no swap mode */
1043 
1044 #if !defined (OS2) && !defined (__OS2__)
1045  if (!(ExecProcessingMode.Flags & EP_NOSWAP) &&
1046  (Swap_Mode != SWAP_OFF))
1047  cmd_line[cmd_line[0] + 2] = 0x0d;
1048 #endif
1049 
1050 /* If the name in the file is in upper case - use \ for separators */
1051 
1054 
1055 /* OK we are ready to execute */
1056 
1057 #if !defined (OS2) && !defined (__OS2__)
1059  (Swap_Mode == SWAP_OFF))
1060  {
1061 #endif
1062  new_args[0] = *argv;
1063  new_args[1] = &cmd_line[2];
1064  new_args[2] = (char *)NULL;
1065 
1066  return StartTheProcess (path, new_args);
1067 #if !defined (OS2) && !defined (__OS2__)
1068  }
1069 
1070  else
1071  return 0;
1072 #endif
1073  }
1074  }
1075 
1076  return -1;
1077 }
1078 
1079 /*
1080  * Set up the Window name. Give up if it does not work.
1081  */
1082 
1083 #if defined (OS2) || defined (__OS2__)
1084 static void F_LOCAL SetWindowName (void)
1085 {
1086  HSWITCH hswitch;
1087  SWCNTRL swctl;
1088 
1089  if (!(hswitch = WinQuerySwitchHandle (0, getpid ())))
1090  return;
1091 
1092  if (WinQuerySwitchEntry (hswitch, &swctl))
1093  return;
1094 
1095  strncpy (swctl.szSwtitle, WINDOW_NAME, sizeof (swctl.szSwtitle));
1096  swctl.szSwtitle[sizeof (swctl.szSwtitle) - 1] = 0;
1097 
1098  WinChangeSwitchEntry (hswitch, &swctl);
1099 }
1100 #endif
1101 
1102 
1103 /*
1104  * Extract the next path from a string and build a new path from the
1105  * extracted path and a file name
1106  */
1107 
1109  (char *path_s, /* Path string */
1110  char *file_s, /* File name string */
1111  char *output_s) /* Output path */
1112 {
1113  char *s = output_s;
1114  int fsize = 0;
1115 
1116  while (*path_s && (*path_s != ';') && (fsize++ < FFNAME_MAX))
1117  *s++ = *path_s++;
1118 
1119  if ((output_s != s) && (*(s - 1) != '/') && (fsize++ < FFNAME_MAX))
1120  *s++ = '/';
1121 
1122  *s = 0;
1123 
1124  if (file_s != (char *)NULL)
1125  strncpy (s, file_s, FFNAME_MAX - fsize);
1126 
1127  output_s[FFNAME_MAX - 1] = 0;
1128 
1129  return (*path_s ? ++path_s : (char *)NULL);
1130 }
1131 
1132 /*
1133  * Get and process configuration line:
1134  *
1135  * <field> = <field> <field> # comment
1136  *
1137  * return the number of fields found.
1138  */
1139 
1141 {
1142  char *cp;
1143  int len;
1144  Word_B *wb;
1145 
1146  if (fgets (fd->Line, fd->LineLength - 1, fd->FP) == (char *)NULL)
1147  {
1148  fclose (fd->FP);
1149  return -1;
1150  }
1151 
1152 /* Remove the EOL */
1153 
1154  if ((cp = strchr (fd->Line, '\n')) != (char *)NULL)
1155  *cp = 0;
1156 
1157 /* Remove the comments at end */
1158 
1159  if ((cp = strchr (fd->Line, '#')) != (char *)NULL)
1160  *cp = 0;
1161 
1162 /* Extract the fields */
1163 
1164  if (fd->Fields != (Word_B *)NULL)
1165  fd->Fields->w_nword = 0;
1166 
1167  fd->Fields = SplitString (fd->Line, fd->Fields);
1168 
1169  if (WordBlockSize (fd->Fields) < 2)
1170  return 1;
1171 
1172 /* Check for =. At end of first field? */
1173 
1174  wb = fd->Fields;
1175  len = strlen (wb->w_words[0]) - 1;
1176 
1177  if (wb->w_words[0][len] == '=')
1178  wb->w_words[0][len] = 0;
1179 
1180 /* Check second field for just being equals */
1181 
1182  else if (wb->w_nword < 3)
1183  wb->w_nword = 1;
1184 
1185  if (strcmp (wb->w_words[1], "=") == 0)
1186  {
1187  (wb->w_nword)--;
1188  memcpy (wb->w_words + 1, wb->w_words + 2,
1189  (wb->w_nword - 1) * sizeof (void *));
1190  }
1191 
1192 /* Check the third field for starting with an equals */
1193 
1194  else if (*(wb->w_words[2]) == '=')
1195  strcpy (wb->w_words[2], wb->w_words[2] + 1);
1196 
1197  else
1198  wb->w_nword = 1;
1199 
1200  return wb->w_nword;
1201 }
1202 
1203 /*
1204  * Split the string up into words
1205  */
1206 
1207 static Word_B * F_LOCAL SplitString (char *string, Word_B *wb)
1208 {
1209  while (*string)
1210  {
1211  while (isspace (*string))
1212  *(string++) = 0;
1213 
1214  if (*string)
1215  wb = AddWordToBlock (string, wb);
1216 
1217  while (!isspace (*string) && *string)
1218  ++string;
1219  }
1220 
1221  return wb;
1222 }
1223 
1224 /*
1225  * Generate a temporary filename
1226  */
1227 
1229 {
1230  static char tmpfile[FFNAME_MAX];
1231  char *tmpdir; /* Points to directory prefix of pipe */
1232  static int temp_count = 0;
1233  char *sep = "/";
1234 
1235 /* Find out where we should put temporary files */
1236 
1237  if (((tmpdir = GET_ENVIRON ("TMP")) == FAIL_ENVIRON) &&
1238  ((tmpdir = GET_ENVIRON ("HOME")) == FAIL_ENVIRON) &&
1239  ((tmpdir = GET_ENVIRON ("TMPDIR")) == FAIL_ENVIRON))
1240  tmpdir = ".";
1241 
1242  if (strchr ("/\\", tmpdir[strlen (tmpdir) - 1]) != (char *)NULL)
1243  sep = "";
1244 
1245 /* Get a unique temporary file name */
1246 
1247  while (1)
1248  {
1249  sprintf (tmpfile, "%s%ssht%.5u.tmp", tmpdir, sep, temp_count++);
1250 
1251  if (access (tmpfile, F_OK) != 0)
1252  break;
1253  }
1254 
1255  return tmpfile;
1256 }
1257 
1258 /*
1259  * Write a command string to the extended file
1260  */
1261 
1262 static bool F_LOCAL WriteToExtendedFile (FILE *fd, char *string)
1263 {
1264  char *sp = string;
1265  char *cp = string;
1266  bool WriteOk = TRUE;
1267 
1268  if (string == (char *)NULL)
1269  {
1270  if (fclose (fd) != EOF)
1271  return TRUE;
1272 
1273  WriteOk = FALSE;
1274  }
1275 
1276  else if (strlen (string))
1277  {
1278 
1279 /* Write the string, converting newlines to backslash newline */
1280 
1281  while (WriteOk && (cp != (char *)NULL))
1282  {
1283  if ((cp = strchr (sp, '\n')) != (char *)NULL)
1284  *cp = 0;
1285 
1286  if (fputs (sp, fd) == EOF)
1287  WriteOk = FALSE;
1288 
1289  else if (cp != (char *)NULL)
1290  WriteOk = C2bool (fputs ("\\\n", fd) != EOF);
1291 
1292  sp = cp + 1;
1293  }
1294  }
1295 
1296  if (WriteOk && (fputc ('\n', fd) != EOF))
1297  return TRUE;
1298 
1299  fclose (fd);
1301  errno = ENOSPC;
1302  return FALSE;
1303 }
1304 
1305 /*
1306  * Convert the executable path to the full path name
1307  */
1308 
1310 {
1311  char cpath[PATH_MAX + 6];
1312  char npath[PATH_MAX + NAME_MAX + 6];
1313  char n1path[PATH_MAX + 6];
1314  char *p;
1315  int drive;
1316 
1317 /* Get path in DOS format */
1318 
1320 
1321 #if defined (OS2) || defined (__OS2__)
1322  if (!IsHPFSFileSystem (path))
1323  strupr (path);
1324 #else
1325  strupr (path);
1326 #endif
1327 
1328 /* Get the current path */
1329 
1330  getcwd (cpath, PATH_MAX + 3);
1331  strcpy (npath, cpath);
1332 
1333 /* In current directory ? */
1334 
1335  if ((p = strrchr (path, '\\')) == (char *)NULL)
1336  {
1337  p = path;
1338 
1339 /* Check for a:program case */
1340 
1341  if (*(p + 1) == ':')
1342  {
1343  p += 2;
1344 
1345 /* Get the path of the other drive */
1346 
1347  S_getcwd (npath, tolower (*path) - 'a' + 1);
1348  }
1349  }
1350 
1351 /* In root directory */
1352 
1353  else if ((p - path) == 0)
1354  {
1355  ++p;
1356  strcpy (npath, "x:\\");
1357  *npath = *path;
1358  *npath = *cpath;
1359  }
1360 
1361  else if (((p - path) == 2) && (*(path + 1) == ':'))
1362  {
1363  ++p;
1364  strcpy (npath, "x:\\");
1365  *npath = *path;
1366  }
1367 
1368 /* Find the directory */
1369 
1370  else
1371  {
1372  *(p++) = 0;
1373 
1374 /* Change to the directory containing the executable */
1375 
1376  drive = (*(path + 1) == ':') ? tolower (*path) - 'a' + 1
1377 #if defined (OS2) || defined (__OS2__)
1378  : _getdrive ();
1379 #else
1380  : 0;
1381 #endif
1382 
1383 /* Save the current directory on this drive */
1384 
1385  S_getcwd (n1path, drive);
1386 
1387 /* Find the directory we want */
1388 
1389  if (chdir (path) < 0)
1390  return (char *)NULL;
1391 
1392  S_getcwd (npath, drive); /* Save its full name */
1393  chdir (n1path); /* Restore the original */
1394 
1395 /* Restore our original directory */
1396 
1397  if (chdir (cpath) < 0)
1398  return (char *)NULL;
1399  }
1400 
1401  if (npath[strlen (npath) - 1] != '\\')
1402  strcat (npath, "\\");
1403 
1404  strcat (npath, p);
1405  return strcpy (path, npath);
1406 }
1407 
1408 /*
1409  * Execute or spawn the process
1410  */
1411 
1412 static int F_LOCAL StartTheProcess (char *path, char **argv)
1413 {
1414 #if !defined (OS2) && !defined (__OS2__)
1415  return ((ExecProcessingMode.Flags & EP_NOSWAP) || (Swap_Mode == SWAP_OFF))
1416  ? spawnv (P_WAIT, path, ProcessSpaceInParameters (argv))
1417  : 0;
1418 #else
1419  return OS2_DosExecProgram (path, argv);
1420 #endif
1421 }
1422 
1423 
1424 /*
1425  * Special OS/2 processing for execve and spawnv
1426  */
1427 
1428 #if defined (OS2) || defined (__OS2__)
1429 static int F_LOCAL OS2_DosExecProgram (char *Program, char **argv)
1430 {
1431 # if defined (__OS2__)
1432  APIRET ErrorCode;
1433 # else
1434  USHORT ErrorCode;
1435 # endif
1436  void (*sig_int)(); /* Interrupt signal */
1437  RESULTCODES rescResults;
1438  PID pidProcess;
1439  PID pidWait;
1440  char *OS2Environment;
1441  char *OS2Arguments;
1442  char **SavedArgs;
1443  int argc;
1444 
1445 /* Set the error module to null */
1446 
1447  *FailName = 0;
1448 
1449 
1450 /* Build OS/2 argument string
1451  *
1452  * 1. Count the number of arguments.
1453  * 2. Add 2 for: 1 - NULL; 2 - argv[0]; 3 - the stringed arguments
1454  * 3. save copy of arguments at offset 2.
1455  * 4. On original argv, process white space and convert to OS2 Argument string.
1456  * 5. Set up program name at offset 2 as ~argv
1457  * 6. Convert zero length args to "~" and args beginning with ~ to ~~
1458  * 7. Build OS2 Argument string (at last).
1459  */
1460 
1462 
1463  if ((SavedArgs = (char **)malloc ((argc + 3) * sizeof (char *)))
1464  == (char **)NULL)
1465  return -1;
1466 
1467  memcpy (SavedArgs + 2, argv, (argc + 1) * sizeof (char *));
1468 
1469 /* Set program name at Offset 0 */
1470 
1471  SavedArgs[0] = *argv;
1472 
1473 /* Build OS2 Argument string in Offset 1 */
1474 
1475  if ((SavedArgs[1] = BuildOS2String (ProcessSpaceInParameters (&argv[1]),
1476  ' ')) == (char *)NULL)
1477  return -1;
1478 
1479 /* Set up the new arg 2 - ~ + programname */
1480 
1481  if ((SavedArgs[2] = InsertCharacterAtStart (*argv)) == (char *)NULL)
1482  return -1;
1483 
1484 /* Convert zero length args and args starting with a ~ */
1485 
1486  for (argc = 3; SavedArgs[argc] != (char *)NULL; argc++)
1487  {
1488  if (strlen (SavedArgs[argc]) == 0)
1489  SavedArgs[argc] = "~";
1490 
1491  else if ((*SavedArgs[argc] == '~') &&
1492  ((SavedArgs[argc] = InsertCharacterAtStart (SavedArgs[argc]))
1493  == (char *)NULL))
1494  return -1;
1495  }
1496 
1497 /* Build the full argument list */
1498 
1499  if ((OS2Arguments = BuildOS2String (SavedArgs, 0)) == (char *)NULL)
1500  return -1;
1501 
1502 /* Build OS/2 environment string */
1503 
1504  if ((OS2Environment = BuildOS2String (environ, 0)) == (char *)NULL)
1505  return -1;
1506 
1507 /* Change signal handling */
1508 
1509  sig_int = signal (SIGINT, SIG_DFL);
1510 
1511 /* Exec it */
1512 
1513  ErrorCode = DosExecPgm (FailName, sizeof (FailName), EXEC_ASYNCRESULT,
1514  OS2Arguments,
1515  OS2Environment,
1516  &rescResults, Program);
1517 
1518  signal (SIGINT, SIG_IGN);
1519 
1520 /* If the process started OK, wait for it */
1521 
1522  if ((ErrorCode == NO_ERROR) || (ErrorCode == ERROR_INTERRUPT))
1523  {
1524  pidWait = rescResults.codeTerminate;
1525 
1526 /* Re-try on interrupted system calls - and kill the child. Why, because
1527  * sometimes the kill does not go to the child
1528  */
1529 
1530  while ((ErrorCode = DosCwait (DCWA_PROCESS, DCWW_WAIT,
1531  &rescResults, &pidProcess,
1532  pidWait)) == ERROR_INTERRUPT)
1533  DosKillProcess (DKP_PROCESS, pidWait);
1534  }
1535 
1536  signal (SIGINT, sig_int);
1537 
1538 /*
1539  * What happened ?. OS/2 Error - Map to UNIX errno. Why can't people
1540  * write libraries right?? Or provide access at a high level. We could
1541  * call _dosret if the interface did not require me to write more
1542  * assembler.
1543  */
1544 
1545  if (ErrorCode == 0)
1546  return rescResults.codeResult;
1547 
1548  fprintf (stderr, "system: DosExecPgm failed OS2 Error %d (%s)\n",
1549  ErrorCode, FailName);
1550 
1551  switch (ErrorCode)
1552  {
1553  case ERROR_NO_PROC_SLOTS:
1554  errno = EAGAIN;
1555  return -1;
1556 
1557  case ERROR_NOT_ENOUGH_MEMORY:
1558  errno = ENOMEM;
1559  return -1;
1560 
1561  case ERROR_ACCESS_DENIED:
1562  case ERROR_DRIVE_LOCKED:
1563  case ERROR_LOCK_VIOLATION:
1564  case ERROR_SHARING_VIOLATION:
1565  errno = EACCES;
1566  return -1;
1567 
1568  case ERROR_FILE_NOT_FOUND:
1569  case ERROR_PATH_NOT_FOUND:
1570  case ERROR_PROC_NOT_FOUND:
1571  errno = ENOENT;
1572  return -1;
1573 
1574  case ERROR_BAD_ENVIRONMENT:
1575  case ERROR_INVALID_DATA:
1576  case ERROR_INVALID_FUNCTION:
1577  case ERROR_INVALID_ORDINAL:
1578  case ERROR_INVALID_SEGMENT_NUMBER:
1579  case ERROR_INVALID_STACKSEG:
1580  case ERROR_INVALID_STARTING_CODESEG:
1581  errno = EINVAL;
1582  return -1;
1583 
1584  case ERROR_TOO_MANY_OPEN_FILES:
1585  errno = EMFILE;
1586  return -1;
1587 
1588  case ERROR_INTERRUPT:
1589  case ERROR_NOT_DOS_DISK:
1590  case ERROR_SHARING_BUFFER_EXCEEDED:
1591  errno = EIO;
1592  return -1;
1593 
1594  default:
1595  errno = ENOEXEC;
1596  return -1;
1597  }
1598 }
1599 
1600 /*
1601  * Insert character at start of string
1602  *
1603  * Return NULL or new string
1604  */
1605 
1606 static char * F_LOCAL InsertCharacterAtStart (char *string)
1607 {
1608  char *cp;
1609 
1610  if ((cp = (char *)malloc (strlen (string) + 2)) == (char *)NULL)
1611  return (char *)NULL;
1612 
1613  *cp = '~';
1614  strcpy (cp + 1, string);
1615 
1616  return cp;
1617 }
1618 #endif
1619 
1620 /*
1621  * Convert any parameters with spaces in the to start and end with double
1622  * quotes.
1623  *
1624  * Under OS2, the old string is NOT released.
1625  */
1626 
1627 static char ** F_LOCAL ProcessSpaceInParameters (char **argv)
1628 {
1629  char **Start = argv;
1630  char *new;
1631  char *cp;
1632  char *sp;
1633  int Count;
1634 
1635 /* If noquote set, don't even try */
1636 
1638  return Start;
1639 
1640 /* Protect parameters with TABS */
1641 
1642  while (*argv != (char *)NULL)
1643  {
1644  if ((strchr (*argv, ' ') != (char *)NULL) ||
1645  (strchr (*argv, '\t') != (char *)NULL) ||
1646  (strlen (*argv) == 0))
1647  {
1648 
1649 /* Count number of Double quotes in the parameter */
1650 
1652 
1653 /* Get some memory - give up update if out of memory */
1654 
1655  if ((new = malloc (strlen (*argv) + (Count * 2) + 3))
1656  == (char *)NULL)
1657  return Start;
1658 
1659  *new = '"';
1660 
1661 /* Escape any double quotes in the string */
1662 
1663  cp = *argv;
1664  sp = new + 1;
1665 
1666  while (*cp)
1667  {
1668  if (*cp == '"')
1669  {
1670  *(sp++) = '\\';
1671  *(sp++) = *(cp++);
1672  }
1673 
1674  else if (*cp != '\\')
1675  *(sp++) = *(cp++);
1676 
1677 /* Handle escapes - count them */
1678 
1679  else
1680  {
1681  *(sp++) = *(cp++);
1682 
1683  if (*cp == '"')
1684  {
1685  *(sp++) = '\\';
1686  *(sp++) = '\\';
1687  }
1688 
1689  else if (*cp == 0)
1690  {
1691  *(sp++) = '\\';
1692  break;
1693  }
1694 
1695  *(sp++) = *(cp++);
1696  }
1697  }
1698 
1699 /* Append the terminating double quotes */
1700 
1701  strcpy (sp, "\"");
1702  *argv = new;
1703  }
1704 
1705 /* Check for any double quotes */
1706 
1707  else if (Count = CountDoubleQuotes (*argv))
1708  {
1709 
1710 /* Got them - escape them */
1711 
1712  if ((new = malloc (strlen (*argv) + Count + 1)) == (char *)NULL)
1713  return Start;
1714 
1715 /* Copy the string, escaping DoubleQuotes */
1716 
1717  cp = *argv;
1718  sp = new;
1719 
1720  while (*sp = *(cp++))
1721  {
1722  if (*sp == '"')
1723  {
1724  *(sp++) = '\\';
1725  *sp = '"';
1726  }
1727 
1728  sp++;
1729  }
1730 
1731  *argv = new;
1732  }
1733 
1734 /* Next parameter */
1735 
1736  argv++;
1737  }
1738 
1739  return Start;
1740 }
1741 
1742 /*
1743  * Word Block Functions
1744  *
1745  * Add a new word to a Word Block or list
1746  */
1747 
1748 static Word_B * F_LOCAL AddWordToBlock (char *wd, Word_B *wb)
1749 {
1750 
1751 /* Do we require more space ? */
1752 
1753  if ((wb == (Word_B *)NULL) || (wb->w_nword >= wb->w_bsize))
1754  {
1755  int NewCount = (wb == (Word_B *)NULL) ? 32 : wb->w_nword * 2;
1756 
1757  if (wb == (Word_B *)NULL)
1758  wb = calloc (1, (NewCount * sizeof (char *)) + sizeof (Word_B));
1759 
1760  else
1761  wb = realloc (wb, (NewCount * sizeof (char *)) + sizeof (Word_B));
1762 
1763  if (wb == (Word_B *)NULL)
1764  return (Word_B *)NULL;
1765 
1766  wb->w_bsize = NewCount;
1767  }
1768 
1769 /* Add to the list */
1770 
1771  wb->w_words[wb->w_nword++] = (void *)wd;
1772  return wb;
1773 }
1774 
1775 /*
1776  * Get the number of words in a block
1777  */
1778 
1779 static int F_LOCAL WordBlockSize (Word_B *wb)
1780 {
1781  return (wb == (Word_B *)NULL) ? 0 : wb->w_nword;
1782 }
1783 
1784 /*
1785  * Build the OS2 format <value>\0<value>\0 etc \0
1786  */
1787 
1788 static char * F_LOCAL BuildOS2String (char **Array, char sep)
1789 {
1790  int i = 0;
1791  int Length = 0;
1792  char *Output;
1793  char *sp, *cp;
1794 
1795 /* Find the total data length */
1796 
1797  while ((sp = Array[i++]) != (char *)NULL)
1798  Length += strlen (sp) + 1;
1799 
1800  Length += 2;
1801 
1802  if ((Output = malloc (Length)) == (char *)NULL)
1803  return (char *)NULL;
1804 
1805 /* Build the new string */
1806 
1807  i = 0;
1808  sp = Output;
1809 
1810 /* Build the string */
1811 
1812  while ((cp = Array[i++]) != (char *)NULL)
1813  {
1814  while (*sp = *(cp++))
1815  ++sp;
1816 
1817  if (!sep || (Array[i] != (char *)NULL))
1818  *(sp++) = sep;
1819  }
1820 
1821  *sp = 0;
1822  return Output;
1823 }
1824 
1825 /*
1826  * Check Parameter line length
1827  *
1828  * Under OS2, we don't build the command line. Just check it.
1829  */
1830 
1831 static bool F_LOCAL CheckParameterLength (char **argv)
1832 {
1833  int CmdLineLength;
1834  char *CommandLine;
1835  bool RetVal;
1836  char **SavedArgs = argv;
1837 
1838 /* Check for special case. If there are any special characters and we can
1839  * use UNIX mode, use it
1840  */
1841 
1843  {
1844  while (*argv != (char *)NULL)
1845  {
1846  if (strpbrk (*(argv++), "\"'") != (char *)NULL)
1847  return FALSE;
1848  }
1849  }
1850 
1851 /*
1852  * Do any parameter conversion - adding quotes or backslashes, but don't
1853  * update argv.
1854  */
1855 
1856  CmdLineLength = CountNumberArguments (argv = SavedArgs);
1857 
1858  if ((SavedArgs = (char **)malloc ((CmdLineLength + 1) * sizeof (char *)))
1859  == (char **)NULL)
1860  return FALSE;
1861 
1862 /* Save a copy of the argument addresses */
1863 
1864  memcpy (SavedArgs, argv, (CmdLineLength + 1) * sizeof (char *));
1865 
1866 /* Build the command line */
1867 
1869  ' ')) == (char *)NULL)
1870  {
1871  free (SavedArgs);
1872  return FALSE;
1873  }
1874 
1875 /* Check command line length */
1876 
1877  if ((CmdLineLength = strlen (CommandLine)) >= CMD_LINE_MAX - 2)
1878  {
1879  errno = E2BIG;
1880  RetVal = FALSE;
1881  }
1882 
1883 /* Terminate the line */
1884 
1885  else
1886  {
1887 #if !defined (OS2) && !defined (__OS2__)
1888  strcpy (cmd_line + 1, CommandLine);
1889  cmd_line[CmdLineLength + 1] = 0x0d;
1890  cmd_line[0] = (char)CmdLineLength;
1891 #endif
1892  RetVal = TRUE;
1893  }
1894 
1895  free (SavedArgs);
1896  free (CommandLine);
1897 
1898  return RetVal;
1899 }
1900 
1901 /*
1902  * Count DoubleQuotes
1903  */
1904 
1905 static int F_LOCAL CountDoubleQuotes (char *string)
1906 {
1907  int Count = 0;
1908 
1909  while ((string = strchr (string, '"')) != (char *)NULL)
1910  {
1911  Count++;
1912  string++;
1913  }
1914 
1915  return Count;
1916 }
1917 
1918 /*
1919  * Get a valid numeric value
1920  */
1921 
1922 static bool F_LOCAL ConvertNumericValue (char *string, long *value, int base)
1923 {
1924  char *ep;
1925 
1926  *value = strtol (string, &ep, base);
1927 
1928  return C2bool (!*ep);
1929 }
1930 
1931 /*
1932  * Is this a valid variable name
1933  */
1934 
1935 static bool F_LOCAL IsValidVariableName (char *s)
1936 {
1937  if (!isalpha (*s) && (*s != '_'))
1938  return *s;
1939 
1940  while (*s && (isalnum (*s) || (*s == '_')))
1941  ++s;
1942 
1943  return C2bool (*s);
1944 }
1945 
1946 /*
1947  * Count the number of entries in an array
1948  */
1949 
1950 static int F_LOCAL CountNumberArguments (char **wp)
1951 {
1952  int Count = 0;
1953 
1954  while (*(wp++) != (char *)NULL)
1955  Count++;
1956 
1957  return Count;
1958 }
1959 
1960 /*
1961  * OS2 does not require swapping
1962  */
1963 
1964 /*
1965  * Get the XMS Driver information
1966  */
1967 
1968 #if !defined (OS2) && !defined (__OS2__)
1969 static bool F_LOCAL Get_XMS_Driver (void)
1970 {
1971  union REGS or;
1972  struct SREGS sr;
1973  unsigned int SW_EMsize; /* Number of extend memory blks */
1974 
1975 /* Get max Extended memory pages, and convert to 16K blocks. If Extended
1976  * memory swapping disabled, set to zero
1977  */
1978 
1979  SW_fp = -1; /* Set EMS/XMS handler not */
1980  /* defined */
1981 
1982 /* Is a XMS memory driver installed */
1983 
1984  or.x.ax = 0x4300;
1985  int86 (0x2f, &or, &or);
1986 
1987  if (or.h.al != 0x80)
1988  {
1989  or.x.ax = 0x8800;
1990  int86 (0x15, &or, &or);
1991  SW_EMsize = or.x.ax / 16;
1992 
1993  if ((SW_EMsize <= SW_Blocks) ||
1994  (((long)(SW_EMstart - 0x100000L) +
1995  ((long)(SW_Blocks - SW_EMsize) * 16L * 1024L)) < 0L))
1996  return XMS_error (MS_Space, 0);
1997 
1998  else
1999  return TRUE;
2000  }
2001 
2002 /* Get the driver interface */
2003 
2004  or.x.ax = 0x4310;
2005  int86x (0x2f, &or, &or, &sr);
2006  SW_XMS_Driver = (void (*)())((unsigned long)(sr.es) << 16L | or.x.bx);
2007 
2008 /* Support for version 3 of XMS driver */
2009 
2010  if ((SW_XMS_Gversion () & 0xff00) < 0x0200)
2011  return XMS_error ("WARNING - %s Version < 2", 0);
2012 
2013  else if (SW_XMS_Available () < (SW_Blocks * 16))
2014  return XMS_error (MS_Space, 0);
2015 
2016  else if ((SW_fp = SW_XMS_Allocate (SW_Blocks * 16)) == -1)
2017  return XMS_error (MS_emsg, errno);
2018 
2019  return TRUE;
2020 }
2021 
2022 /* Get the EMS Driver information */
2023 
2024 static bool F_LOCAL Get_EMS_Driver (void)
2025 {
2026  union REGS or;
2027  struct SREGS sr;
2028  char *sp;
2029 
2030 /* Set EMS/XMS handler not defined */
2031 
2032  SW_fp = -1;
2033 
2034  or.x.ax = 0x3567;
2035  intdosx (&or, &or, &sr);
2036 
2037  sp = (char *)((unsigned long)(sr.es) << 16L | 10L);
2038 
2039 /* If not there - disable */
2040 
2041  if (memcmp ("EMMXXXX0", sp, 8) != 0)
2042  return EMS_error ("WARNING - %s not available", 0);
2043 
2044  or.h.ah = 0x40; /* Check status */
2045  int86 (0x67, &or, &or);
2046 
2047  if (or.h.ah != 0)
2048  return EMS_error (MS_emsg, or.h.ah);
2049 
2050 /* Check version greater than 3.2 */
2051 
2052  or.h.ah = 0x46;
2053  int86 (0x67, &or, &or);
2054 
2055  if ((or.h.ah != 0) || (or.h.al < 0x32))
2056  return EMS_error ("WARNING - %s Version < 3.2", 0);
2057 
2058 /* get page frame address */
2059 
2060  or.h.ah = 0x41;
2061  int86 (0x67, &or, &or);
2062 
2063  if (or.h.ah != 0)
2064  return EMS_error (MS_emsg, or.h.ah);
2065 
2066  SW_EMSFrame = or.x.bx; /* Save the page frame */
2067 
2068 /* Get the number of pages required */
2069 
2070  or.h.ah = 0x43;
2071  or.x.bx = SW_Blocks;
2072  int86 (0x67, &or, &or);
2073 
2074  if (or.h.ah == 0x088)
2075  return EMS_error (MS_Space, 0);
2076 
2077  if (or.h.ah != 0)
2078  return EMS_error (MS_emsg, or.h.ah);
2079 
2080 /* Save the EMS Handler */
2081 
2082  SW_fp = or.x.dx;
2083 
2084 /* save EMS page map */
2085 
2086  or.h.ah = 0x47;
2087  or.x.dx = SW_fp;
2088  int86 (0x67, &or, &or);
2089 
2090  return (or.h.ah != 0) ? EMS_error (MS_emsg, or.h.ah) : TRUE;
2091 }
2092 
2093 /* Print EMS error message */
2094 
2095 static bool F_LOCAL EMS_error (char *s, int v)
2096 {
2097  fputs ("system: ", stderr);
2098  fprintf (stderr, s, "EMS", v);
2099  fputc ('\n', stderr);
2100 
2101  Swap_Mode &= ~(SWAP_EXPAND);
2102  EMS_Close ();
2103  return FALSE;
2104 }
2105 
2106 /* Print XMS error message */
2107 
2108 static bool F_LOCAL XMS_error (char *s, int v)
2109 {
2110  fputs ("system: ", stderr);
2111  fprintf (stderr, s, "XMS", v);
2112  fputc ('\n', stderr);
2113 
2114  Swap_Mode &= ~(SWAP_EXTEND);
2115  XMS_Close ();
2116  return FALSE;
2117 }
2118 
2119 /* If the XMS handler is defined - close it */
2120 
2121 static int F_LOCAL XMS_Close (void)
2122 {
2123  int res = 0;
2124 
2125 /* Release XMS page */
2126 
2127  if (SW_fp != -1)
2128  res = SW_XMS_Free (SW_fp);
2129 
2130  SW_fp = -1;
2131  return res;
2132 }
2133 
2134 /* If the EMS handler is defined - close it */
2135 
2136 static int F_LOCAL EMS_Close (void)
2137 {
2138  union REGS or;
2139  int res = 0;
2140 
2141  if (SW_fp == -1)
2142  return 0;
2143 
2144 /* Restore EMS page */
2145 
2146  or.h.ah = 0x48;
2147  or.x.dx = SW_fp;
2148  int86 (0x67, &or, &or);
2149 
2150  if (or.h.ah != 0)
2151  res = or.h.al;
2152 
2153  or.h.ah = 0x45;
2154  or.x.dx = SW_fp;
2155  int86 (0x67, &or, &or);
2156 
2157  SW_fp = -1;
2158  return (res) ? res : or.h.ah;
2159 }
2160 
2161 /*
2162  * Clear Disk swap file file
2163  */
2164 
2165 static void F_LOCAL ClearSwapFile (void)
2166 {
2167  close (SW_fp);
2168 
2169  if (Swap_File != (char *)NULL)
2170  {
2171  unlink (Swap_File);
2172  free ((void *)Swap_File);
2173  }
2174 
2175  Swap_File = (char *)NULL;
2176 }
2177 
2178 /*
2179  * Swap to disk error
2180  */
2181 
2183 {
2184 /* Clean up */
2185 
2186  ClearSwapFile ();
2187  Swap_Mode &= (~~SWAP_DISK);
2189  errno = error;
2190  return -1;
2191 }
2192 
2193 /*
2194  * Swap to memory
2195  */
2196 
2197 static int F_LOCAL SwapToMemory (int mode)
2198 {
2199  int res;
2200  int cr;
2201 
2202 /* Swap and close memory handler */
2203 
2204  res = SpawnProcess ();
2205 
2206  cr = (SW_Mode != 3) ? XMS_Close () : EMS_Close ();
2207 
2208  if ((res != -2) && cr) /* Report Close error ? */
2209  {
2210  res = -2;
2211  errno = cr;
2212  }
2213 
2214  if (res == -2)
2215  (SW_Mode != 3) ? XMS_error (SwapFailed, errno)
2216  : EMS_error (SwapFailed, errno);
2217 
2218  else
2219  {
2221  return res;
2222  }
2223 
2224 /* Failed - disabled */
2225 
2226  Swap_Mode &= (~~mode);
2227  return res;
2228 }
2229 
2230 /*
2231  * Set Interrupt handling vectors - moved from sh0.asm
2232  */
2233 
2234 static int F_LOCAL SpawnProcess (void)
2235 {
2236  void (interrupt far *SW_I00_V) (void); /* Int 00 address */
2237  void (interrupt far *SW_I23_V) (void); /* Int 23 address*/
2238  int res;
2239 #if 0
2240  union REGS r;
2241  unsigned char Save;
2242 
2243  r.x.ax = 0x3300;
2244  intdos (&r, &r);
2245  Save = r.h.al;
2246  fprintf (stderr, "Break Status: %s (%u)\n", Save ? "on" : "off", Save);
2247 
2248  r.x.ax = 0x3301;
2249  r.h.dl = 1;
2250  intdos (&r, &r);
2251  fprintf (stderr, "Break Status: %s (%u)\n", r.h.al ? "on" : "off", r.h.al);
2252 #endif
2253 
2254 /*
2255  * Save current vectors
2256  */
2257 
2258 #if defined (__TURBOC__)
2259  SW_I00_V = (void (far *)())getvect (0x00);
2260  SW_I23_V = (void (far *)())getvect (0x23);
2261 #else
2262  SW_I00_V = _dos_getvect (0x00);
2263  SW_I23_V = _dos_getvect (0x23);
2264 #endif
2265 
2266 /*
2267  * Set In shell flag for Interrupt 23, and set to new interrupts
2268  */
2269 
2270  SW_I23_InShell = 0;
2271 
2272 #if defined (__TURBOC__)
2273  setvect (0x23, SW_Int23);
2274  setvect (0x00, SW_Int00);
2275 #else
2276  _dos_setvect (0x23, SW_Int23);
2277  _dos_setvect (0x00, SW_Int00);
2278 #endif
2279 
2280  res = SA_spawn (environ);
2281 
2282 /*
2283  * Restore interrupt vectors
2284  */
2285 
2286 #if defined (__TURBOC__)
2287  setvect (0x00, SW_I00_V);
2288  setvect (0x23, SW_I23_V);
2289 #else
2290  _dos_setvect (0x00, SW_I00_V);
2291  _dos_setvect (0x23, SW_I23_V);
2292 #endif
2293 
2294 #if 0
2295  r.x.ax = 0x3300;
2296  intdos (&r, &r);
2297  fprintf (stderr, "Break Status: %s (%u)\n", r.h.al ? "on" : "off", r.h.al);
2298  r.x.ax = 0x3301;
2299  r.h.dl = Save;
2300  intdos (&r, &r);
2301 #endif
2302 
2303 /*
2304  * Check for an interrupt
2305  */
2306 
2307  if (SW_intr)
2308  raise (SIGINT);
2309 
2310  return res;
2311 }
2312 #endif
2313 
2314 /*
2315  * Local get current directory function to do some additional checks
2316  *
2317  * Assumes that PathName is a string of length PATH_MAX + 6.
2318  */
2319 
2320 static void F_LOCAL S_getcwd (char *PathName, int drive)
2321 {
2322 #if defined (__TURBOC__)
2323  *(strcpy (PathName, "x:/")) = drive + 'a' - 1;
2324 #endif
2325 
2326 #if defined (__TURBOC__)
2327  (drive) ? getcurdir (drive, PathName + 3)
2328  : getcwd (PathName, PATH_MAX + 4);
2329 #else
2330  (drive) ? _getdcwd (drive, PathName, PATH_MAX + 4)
2331  : getcwd (PathName, PATH_MAX + 4);
2332 #endif
2333 
2334  PathName[PATH_MAX + 5] = 0;
2335 
2336 /* Convert to Unix format */
2337 
2338 #if (OS_VERSION != OS_DOS)
2339  if (!IsHPFSFileSystem (PathName))
2340  strlwr (PathName);
2341 #else
2342  strlwr (PathName);
2343 #endif
2344 }
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
#define strdup
Definition: Utility.h:167
#define strlwr
Definition: Utility.h:162
cp
Definition: action.c:1035
#define name
#define mode
Definition: aptex-macros.h:510
static integer interrupt
Definition: aptex.h:329
char *__cdecl strpbrk(char const *_Str, char const *_Control)
Definition: Array.h:29
#define far
Definition: dd.h:143
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define free(a)
Definition: decNumber.cpp:310
#define strrchr
Definition: detex.c:67
#define F_OK
Definition: defs.h:34
int v
Definition: dviconv.c:10
#define fopen
Definition: xxstdio.h:21
#define fgets
Definition: xxstdio.h:29
char * strncpy()
int strcmp()
Definition: coll.cpp:143
int printf()
char * strcpy()
i32 Count[10]
Definition: dvibook.c:121
char tmpdir[]
#define error(a)
Definition: dviinfo.c:48
#define xp
#define sp1
#define s
Definition: afcover.h:80
int base
Definition: gsftopk.c:1502
#define strchr
Definition: gsftopk.c:59
#define memcmp(s1, s2, n)
Definition: gsftopk.c:66
#define memcpy(d, s, n)
Definition: gsftopk.c:64
#define PATH_MAX
Definition: ftmac.c:91
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p
Definition: afcover.h:72
small capitals from c petite p scientific i
Definition: afcover.h:80
sizeof(AF_ModuleRec)
#define EOF
Definition: afmparse.c:59
voidp calloc()
int errno
#define unlink(file)
Definition: config.h:413
#define NO_ERROR
Definition: error.h:34
unsigned short USHORT
Definition: sfnt.h:36
#define NAME_MAX
Definition: c-namemx.h:33
#define fclose
Definition: debug.h:100
char ** environ
#define access
Definition: win32lib.h:59
#define stricmp
Definition: win32lib.h:93
#define getcwd
Definition: win32lib.h:77
#define putenv
Definition: win32lib.h:87
#define open
Definition: win32lib.h:86
#define close
Definition: win32lib.h:63
#define chdir
Definition: win32lib.h:61
#define getpid
Definition: win32lib.h:76
#define fputs
Definition: mendex.h:67
#define fprintf
Definition: mendex.h:64
#define string
Definition: ctangleboot.c:111
#define malloc
Definition: alloca.c:91
#define sprintf
Definition: snprintf.c:44
#define realloc
Definition: glob.c:206
#define _getdrive()
Definition: mktexlib.h:47
static const char * ErrorMessage
Definition: objects.c:788
union value value
Definition: obx.h:44
#define res(length)
Definition: picttoppm.c:287
static int size
Definition: ppmlabel.c:24
int r
Definition: ppmqvga.c:68
bstring c int memset(void *s, int c, int length)
static char sep[2]
Definition: pdftoppm.cc:115
#define tolower(ch)
Definition: utype.h:137
#define isspace(ch)
Definition: utype.h:87
#define isalpha(ch)
Definition: utype.h:82
#define isalnum(ch)
Definition: utype.h:84
static char Output[]
Definition: luac.c:34
#define InsertCharacterAtStart(a)
Definition: sh3.c:173
#define SetWindowName(a)
Definition: sh.h:1907
unsigned long far SW_XMS_Driver
#define IsHPFSFileSystem(a)
Definition: sh.h:1127
int _osmajor
Definition: sh1.c:1
char * Name
Definition: sh3.c:248
unsigned int Flag
Definition: sh3.c:249
unsigned char FieldSep
Definition: system.c:266
unsigned int Flags
Definition: system.c:265
Definition: sh.h:1945
FILE * FP
Definition: sh.h:1946
char * Line
Definition: sh.h:1947
Word_B * Fields
Definition: sh.h:1949
int LineLength
Definition: sh.h:1948
Definition: sh.h:1422
unsigned int MCB_len
Definition: sh.h:1425
unsigned int MCB_pid
Definition: sh.h:1424
char MCB_type
Definition: sh.h:1423
Definition: tpic.c:45
Definition: sh2.c:920
Definition: sh.h:1559
short w_bsize
Definition: sh.h:1560
short w_nword
Definition: sh.h:1561
char * w_words[1]
Definition: sh.h:1562
static void near ClearSwapFile(void)
Definition: system.c:2165
#define O_SMASK
Definition: system.c:177
static void near CheckProgramMode(char *)
Definition: system.c:778
#define F_LOCAL
Definition: system.c:99
int system(char const *arg2)
Definition: system.c:395
int far SW_fp
unsigned int far SW_Blocks
static char *near BuildOS2String(char **, char)
Definition: system.c:1788
static int near ExecuteProgram(char *, char **)
Definition: system.c:570
static void near SetUpSwapper(void)
static struct ExecutableProcessing ExecProcessingMode
static int Swap_Mode
Definition: system.c:213
#define EP_EXPORT
Definition: system.c:278
static int near SpawnProcess(void)
Definition: system.c:2234
#define WINDOW_NAME
Definition: system.c:170
#define MCB_END
Definition: system.c:204
char far path_line[]
static bool near ConvertNumericValue(char *, long *, int)
Definition: system.c:1922
#define EP_NONE
Definition: system.c:271
int far SA_spawn(char **)
unsigned int far SW_EMsize
#define SWAP_EXTEND
Definition: system.c:210
#define EP_NOSWAP
Definition: system.c:276
static char * Extensions[]
Definition: system.c:234
static int near XMS_Close(void)
Definition: system.c:2121
#define FATAL_ERROR(a)
Definition: system.c:163
#define C2bool(c)
Definition: system.c:149
#define EXTENSION_NOT_FOUND
Definition: system.c:183
static char *near GenerateFullExecutablePath(char *)
Definition: system.c:1309
static char * Swap_File
Definition: system.c:218
#define FFNAME_MAX
Definition: system.c:143
#define MCB_CON
Definition: system.c:203
#define EP_CONVERT
Definition: system.c:279
static bool near Get_EMS_Driver(void)
Definition: system.c:2024
static void near ConvertPathToFormat(char *)
Definition: system.c:916
static size_t near WhiteSpaceLength(char *, bool *)
static int near CountNumberArguments(char **)
Definition: system.c:1950
static bool near EMS_error(char *, int)
Definition: system.c:2095
static void near ClearExtendedLineFile(void)
Definition: system.c:946
bool far SW_I23_InShell
int far SW_XMS_Gversion(void)
static char *near BuildNextFullPathName(char *, char *, char *)
Definition: system.c:1109
static char * MS_emsg
Definition: system.c:215
void interrupt far SW_Int23(void)
#define CMD_LINE_MAX
Definition: system.c:191
static char * Extend_file
Definition: system.c:221
#define EP_UNIXMODE
Definition: system.c:273
static char * SwapFailed
Definition: system.c:217
#define EIO
Definition: system.c:288
#define EXTENSION_EXECUTABLE
Definition: system.c:184
char far cmd_line[]
static char * MS_Space
Definition: system.c:216
int far SW_XMS_Free(int)
static int near FindLocationOfExecutable(char *, char *)
Definition: system.c:716
#define EP_COMSPEC
Definition: system.c:277
static bool near Get_XMS_Driver(void)
Definition: system.c:1969
static char * NoSwapFiles
Definition: system.c:214
static Word_B *near SplitString(char *, Word_B *)
Definition: system.c:1207
void(interrupt far *SW_I23_V)(void)
#define EP_NOQUOTE
Definition: system.c:281
static int near WordBlockSize(Word_B *)
Definition: system.c:1779
static void near SetCurrentDrive(unsigned int)
Definition: system.c:926
#define FAIL_ENVIRON
Definition: system.c:165
#define SWAP_OFF
Definition: system.c:208
unsigned int far SW_Mode
static int ExtractFieldsFromLine(LineFields *)
Definition: system.c:1140
static int near EMS_Close(void)
Definition: system.c:2136
static char *near GenerateTemporaryFileName(void)
Definition: system.c:1228
void interrupt far SW_Int00(void)
static Word_B *near AddWordToBlock(char *, Word_B *)
Definition: system.c:1748
unsigned int far SW_XMS_Available(void)
unsigned int far SW_intr
#define E2BIG
Definition: system.c:292
#define GET_ENVIRON(p)
Definition: system.c:164
static int near SwapToDiskError(int, char *)
Definition: system.c:2182
static bool near XMS_error(char *, int)
Definition: system.c:2108
unsigned long far SW_EMstart
static bool near IsValidVariableName(char *)
Definition: system.c:1935
struct Fields LineFields
static char **near ProcessSpaceInParameters(char **)
Definition: system.c:1627
static bool near CheckParameterLength(char **)
Definition: system.c:1831
#define P_WAIT
Definition: system.c:103
#define SWAP_DISK
Definition: system.c:209
static unsigned int near CheckForCommonOptions(LineFields *, int)
Definition: system.c:889
struct wdblock Word_B
#define SWAP_EXPAND
Definition: system.c:211
#define EP_DOSMODE
Definition: system.c:272
#define SHELL_SWITCH
Definition: system.c:166
static bool near WriteToExtendedFile(FILE *, char *)
Definition: system.c:1262
#define EXTENSION_COUNT
Definition: system.c:233
static int near BuildCommandLine(char *, char **)
Definition: system.c:964
int far SW_XMS_Allocate(unsigned int)
unsigned int far SW_EMSFrame
static void near S_getcwd(char *, int)
Definition: system.c:2320
#define COMMON_FIELD_COUNT
Definition: system.c:303
#define EP_ENVIRON
Definition: system.c:275
static int near SwapToMemory(int)
Definition: system.c:2197
static int near CountDoubleQuotes(char *)
Definition: system.c:1905
static int near StartTheProcess(char *, char **)
Definition: system.c:1412
pointer path
Definition: t1imager.h:36
#define FILE
Definition: t1stdio.h:34
int j
Definition: t4ht.c:1589
void signal(SIGFPE, sig_err)
*job_name strlen((char *) job_name) - 4)
found
Definition: tex4ht.c:5000
return() int(((double) *(font_tbl[cur_fnt].wtbl+(int)(*(font_tbl[cur_fnt].char_wi+(int)(ch - font_tbl[cur_fnt].char_f)% 256)))/(double)(1L<< 20)) *(double) font_tbl[cur_fnt].scale)
#define sp
Definition: stack.c:11
@ L
Definition: ubidiimp.h:45
uint32_t Flags
Definition: ubidiimp.h:38
Definition: obx.h:51
@ LF
Definition: uprops.h:351
char cr[]
Definition: vlna.c:107
#define argv
Definition: xmain.c:270
#define main
Definition: xmain.c:31
#define argc
Definition: xmain.c:269
static node * new_args(parser_state *p, node *m, node *opt, mrb_sym rest, node *m2, node *tail)
Definition: y.tab.c:878