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)  

uregex.cpp
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2004-2015, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 *******************************************************************************
8 * file name: uregex.cpp
9 */
10 
11 #include "unicode/utypes.h"
12 
13 #if !UCONFIG_NO_REGULAR_EXPRESSIONS
14 
15 #include "unicode/regex.h"
16 #include "unicode/uregex.h"
17 #include "unicode/unistr.h"
18 #include "unicode/ustring.h"
19 #include "unicode/uchar.h"
20 #include "unicode/uobject.h"
21 #include "unicode/utf16.h"
22 #include "cmemory.h"
23 #include "uassert.h"
24 #include "uhash.h"
25 #include "umutex.h"
26 #include "uvectr32.h"
27 
28 #include "regextxt.h"
29 
31 
32 #define REMAINING_CAPACITY(idx,len) ((((len)-(idx))>0)?((len)-(idx)):0)
33 
34 struct RegularExpression: public UMemory {
35 public:
39  RegexPattern *fPat;
43  RegexMatcher *fMatcher;
44  const UChar *fText; // Text from setText()
45  int32_t fTextLength; // Length provided by user with setText(), which
46  // may be -1.
48 };
49 
50 static const int32_t REXP_MAGIC = 0x72657870; // "rexp" in ASCII
51 
54  fPat = NULL;
56  fPatString = NULL;
57  fPatStringLen = 0;
58  fMatcher = NULL;
59  fText = NULL;
60  fTextLength = 0;
61  fOwnsText = FALSE;
62 }
63 
65  delete fMatcher;
66  fMatcher = NULL;
68  delete fPat;
70  uprv_free((void *)fPatRefCount);
71  }
72  if (fOwnsText && fText!=NULL) {
73  uprv_free((void *)fText);
74  }
75  fMagic = 0;
76 }
77 
79 
81 
82 //----------------------------------------------------------------------------------------
83 //
84 // validateRE Do boilerplate style checks on API function parameters.
85 // Return TRUE if they look OK.
86 //----------------------------------------------------------------------------------------
87 static UBool validateRE(const RegularExpression *re, UBool requiresText, UErrorCode *status) {
88  if (U_FAILURE(*status)) {
89  return FALSE;
90  }
91  if (re == NULL || re->fMagic != REXP_MAGIC) {
93  return FALSE;
94  }
95  // !!! Not sure how to update this with the new UText backing, which is stored in re->fMatcher anyway
96  if (requiresText && re->fText == NULL && !re->fOwnsText) {
98  return FALSE;
99  }
100  return TRUE;
101 }
102 
103 //----------------------------------------------------------------------------------------
104 //
105 // uregex_open
106 //
107 //----------------------------------------------------------------------------------------
111  uint32_t flags,
112  UParseError *pe,
113  UErrorCode *status) {
114 
115  if (U_FAILURE(*status)) {
116  return NULL;
117  }
118  if (pattern == NULL || patternLength < -1 || patternLength == 0) {
120  return NULL;
121  }
122  int32_t actualPatLen = patternLength;
123  if (actualPatLen == -1) {
124  actualPatLen = u_strlen(pattern);
125  }
126 
129  UChar *patBuf = (UChar *)uprv_malloc(sizeof(UChar)*(actualPatLen+1));
130  if (re == NULL || refC == NULL || patBuf == NULL) {
132  delete re;
133  uprv_free((void *)refC);
134  uprv_free(patBuf);
135  return NULL;
136  }
137  re->fPatRefCount = refC;
138  *re->fPatRefCount = 1;
139 
140  //
141  // Make a copy of the pattern string, so we can return it later if asked.
142  // For compiling the pattern, we will use a UText wrapper around
143  // this local copy, to avoid making even more copies.
144  //
145  re->fPatString = patBuf;
147  u_memcpy(patBuf, pattern, actualPatLen);
148  patBuf[actualPatLen] = 0;
149 
150  UText patText = UTEXT_INITIALIZER;
151  utext_openUChars(&patText, patBuf, patternLength, status);
152 
153  //
154  // Compile the pattern
155  //
156  if (pe != NULL) {
157  re->fPat = RegexPattern::compile(&patText, flags, *pe, *status);
158  } else {
159  re->fPat = RegexPattern::compile(&patText, flags, *status);
160  }
161  utext_close(&patText);
162 
163  if (U_FAILURE(*status)) {
164  goto ErrorExit;
165  }
166 
167  //
168  // Create the matcher object
169  //
170  re->fMatcher = re->fPat->matcher(*status);
171  if (U_SUCCESS(*status)) {
172  return (URegularExpression*)re;
173  }
174 
175 ErrorExit:
176  delete re;
177  return NULL;
178 
179 }
180 
181 //----------------------------------------------------------------------------------------
182 //
183 // uregex_openUText
184 //
185 //----------------------------------------------------------------------------------------
188  uint32_t flags,
189  UParseError *pe,
190  UErrorCode *status) {
191 
192  if (U_FAILURE(*status)) {
193  return NULL;
194  }
195  if (pattern == NULL) {
197  return NULL;
198  }
199 
200  int64_t patternNativeLength = utext_nativeLength(pattern);
201 
202  if (patternNativeLength == 0) {
204  return NULL;
205  }
206 
208 
209  UErrorCode lengthStatus = U_ZERO_ERROR;
210  int32_t pattern16Length = utext_extract(pattern, 0, patternNativeLength, NULL, 0, &lengthStatus);
211 
213  UChar *patBuf = (UChar *)uprv_malloc(sizeof(UChar)*(pattern16Length+1));
214  if (re == NULL || refC == NULL || patBuf == NULL) {
216  delete re;
217  uprv_free((void *)refC);
218  uprv_free(patBuf);
219  return NULL;
220  }
221  re->fPatRefCount = refC;
222  *re->fPatRefCount = 1;
223 
224  //
225  // Make a copy of the pattern string, so we can return it later if asked.
226  // For compiling the pattern, we will use a read-only UText wrapper
227  // around this local copy, to avoid making even more copies.
228  //
229  re->fPatString = patBuf;
230  re->fPatStringLen = pattern16Length;
231  utext_extract(pattern, 0, patternNativeLength, patBuf, pattern16Length+1, status);
232 
233  UText patText = UTEXT_INITIALIZER;
234  utext_openUChars(&patText, patBuf, pattern16Length, status);
235 
236  //
237  // Compile the pattern
238  //
239  if (pe != NULL) {
240  re->fPat = RegexPattern::compile(&patText, flags, *pe, *status);
241  } else {
242  re->fPat = RegexPattern::compile(&patText, flags, *status);
243  }
244  utext_close(&patText);
245 
246  if (U_FAILURE(*status)) {
247  goto ErrorExit;
248  }
249 
250  //
251  // Create the matcher object
252  //
253  re->fMatcher = re->fPat->matcher(*status);
254  if (U_SUCCESS(*status)) {
255  return (URegularExpression*)re;
256  }
257 
258 ErrorExit:
259  delete re;
260  return NULL;
261 
262 }
263 
264 //----------------------------------------------------------------------------------------
265 //
266 // uregex_close
267 //
268 //----------------------------------------------------------------------------------------
269 U_CAPI void U_EXPORT2
273  if (validateRE(re, FALSE, &status) == FALSE) {
274  return;
275  }
276  delete re;
277 }
278 
279 
280 //----------------------------------------------------------------------------------------
281 //
282 // uregex_clone
283 //
284 //----------------------------------------------------------------------------------------
288  if (validateRE(source, FALSE, status) == FALSE) {
289  return NULL;
290  }
291 
293  if (clone == NULL) {
295  return NULL;
296  }
297 
298  clone->fMatcher = source->fPat->matcher(*status);
299  if (U_FAILURE(*status)) {
300  delete clone;
301  return NULL;
302  }
303 
304  clone->fPat = source->fPat;
305  clone->fPatRefCount = source->fPatRefCount;
306  clone->fPatString = source->fPatString;
307  clone->fPatStringLen = source->fPatStringLen;
308  umtx_atomic_inc(source->fPatRefCount);
309  // Note: fText is not cloned.
310 
311  return (URegularExpression*)clone;
312 }
313 
314 
315 
316 
317 //------------------------------------------------------------------------------
318 //
319 // uregex_pattern
320 //
321 //------------------------------------------------------------------------------
322 U_CAPI const UChar * U_EXPORT2
324  int32_t *patLength,
325  UErrorCode *status) {
326  RegularExpression *regexp = (RegularExpression*)regexp2;
327 
328  if (validateRE(regexp, FALSE, status) == FALSE) {
329  return NULL;
330  }
331  if (patLength != NULL) {
332  *patLength = regexp->fPatStringLen;
333  }
334  return regexp->fPatString;
335 }
336 
337 
338 //------------------------------------------------------------------------------
339 //
340 // uregex_patternUText
341 //
342 //------------------------------------------------------------------------------
345  UErrorCode *status) {
346  RegularExpression *regexp = (RegularExpression*)regexp2;
347  return regexp->fPat->patternText(*status);
348 }
349 
350 
351 //------------------------------------------------------------------------------
352 //
353 // uregex_flags
354 //
355 //------------------------------------------------------------------------------
358  RegularExpression *regexp = (RegularExpression*)regexp2;
359  if (validateRE(regexp, FALSE, status) == FALSE) {
360  return 0;
361  }
362  int32_t flags = regexp->fPat->flags();
363  return flags;
364 }
365 
366 
367 //------------------------------------------------------------------------------
368 //
369 // uregex_setText
370 //
371 //------------------------------------------------------------------------------
372 U_CAPI void U_EXPORT2
374  const UChar *text,
375  int32_t textLength,
376  UErrorCode *status) {
377  RegularExpression *regexp = (RegularExpression*)regexp2;
378  if (validateRE(regexp, FALSE, status) == FALSE) {
379  return;
380  }
381  if (text == NULL || textLength < -1) {
383  return;
384  }
385 
386  if (regexp->fOwnsText && regexp->fText != NULL) {
387  uprv_free((void *)regexp->fText);
388  }
389 
390  regexp->fText = text;
391  regexp->fTextLength = textLength;
392  regexp->fOwnsText = FALSE;
393 
395  utext_openUChars(&input, text, textLength, status);
396  regexp->fMatcher->reset(&input);
397  utext_close(&input); // reset() made a shallow clone, so we don't need this copy
398 }
399 
400 
401 //------------------------------------------------------------------------------
402 //
403 // uregex_setUText
404 //
405 //------------------------------------------------------------------------------
406 U_CAPI void U_EXPORT2
408  UText *text,
409  UErrorCode *status) {
410  RegularExpression *regexp = (RegularExpression*)regexp2;
411  if (validateRE(regexp, FALSE, status) == FALSE) {
412  return;
413  }
414  if (text == NULL) {
416  return;
417  }
418 
419  if (regexp->fOwnsText && regexp->fText != NULL) {
420  uprv_free((void *)regexp->fText);
421  }
422 
423  regexp->fText = NULL; // only fill it in on request
424  regexp->fTextLength = -1;
425  regexp->fOwnsText = TRUE;
426  regexp->fMatcher->reset(text);
427 }
428 
429 
430 
431 //------------------------------------------------------------------------------
432 //
433 // uregex_getText
434 //
435 //------------------------------------------------------------------------------
436 U_CAPI const UChar * U_EXPORT2
438  int32_t *textLength,
439  UErrorCode *status) {
440  RegularExpression *regexp = (RegularExpression*)regexp2;
441  if (validateRE(regexp, FALSE, status) == FALSE) {
442  return NULL;
443  }
444 
445  if (regexp->fText == NULL) {
446  // need to fill in the text
447  UText *inputText = regexp->fMatcher->inputText();
448  int64_t inputNativeLength = utext_nativeLength(inputText);
449  if (UTEXT_FULL_TEXT_IN_CHUNK(inputText, inputNativeLength)) {
450  regexp->fText = inputText->chunkContents;
451  regexp->fTextLength = (int32_t)inputNativeLength;
452  regexp->fOwnsText = FALSE; // because the UText owns it
453  } else {
454  UErrorCode lengthStatus = U_ZERO_ERROR;
455  regexp->fTextLength = utext_extract(inputText, 0, inputNativeLength, NULL, 0, &lengthStatus); // buffer overflow error
456  UChar *inputChars = (UChar *)uprv_malloc(sizeof(UChar)*(regexp->fTextLength+1));
457 
458  utext_extract(inputText, 0, inputNativeLength, inputChars, regexp->fTextLength+1, status);
459  regexp->fText = inputChars;
460  regexp->fOwnsText = TRUE; // should already be set but just in case
461  }
462  }
463 
464  if (textLength != NULL) {
465  *textLength = regexp->fTextLength;
466  }
467  return regexp->fText;
468 }
469 
470 
471 //------------------------------------------------------------------------------
472 //
473 // uregex_getUText
474 //
475 //------------------------------------------------------------------------------
478  UText *dest,
479  UErrorCode *status) {
480  RegularExpression *regexp = (RegularExpression*)regexp2;
481  if (validateRE(regexp, FALSE, status) == FALSE) {
482  return dest;
483  }
484  return regexp->fMatcher->getInput(dest, *status);
485 }
486 
487 
488 //------------------------------------------------------------------------------
489 //
490 // uregex_refreshUText
491 //
492 //------------------------------------------------------------------------------
493 U_CAPI void U_EXPORT2
495  UText *text,
496  UErrorCode *status) {
497  RegularExpression *regexp = (RegularExpression*)regexp2;
498  if (validateRE(regexp, FALSE, status) == FALSE) {
499  return;
500  }
501  regexp->fMatcher->refreshInputText(text, *status);
502 }
503 
504 
505 //------------------------------------------------------------------------------
506 //
507 // uregex_matches
508 //
509 //------------------------------------------------------------------------------
512  int32_t startIndex,
513  UErrorCode *status) {
514  return uregex_matches64( regexp2, (int64_t)startIndex, status);
515 }
516 
519  int64_t startIndex,
520  UErrorCode *status) {
521  RegularExpression *regexp = (RegularExpression*)regexp2;
522  UBool result = FALSE;
523  if (validateRE(regexp, TRUE, status) == FALSE) {
524  return result;
525  }
526  if (startIndex == -1) {
527  result = regexp->fMatcher->matches(*status);
528  } else {
529  result = regexp->fMatcher->matches(startIndex, *status);
530  }
531  return result;
532 }
533 
534 
535 //------------------------------------------------------------------------------
536 //
537 // uregex_lookingAt
538 //
539 //------------------------------------------------------------------------------
542  int32_t startIndex,
543  UErrorCode *status) {
544  return uregex_lookingAt64( regexp2, (int64_t)startIndex, status);
545 }
546 
549  int64_t startIndex,
550  UErrorCode *status) {
551  RegularExpression *regexp = (RegularExpression*)regexp2;
552  UBool result = FALSE;
553  if (validateRE(regexp, TRUE, status) == FALSE) {
554  return result;
555  }
556  if (startIndex == -1) {
557  result = regexp->fMatcher->lookingAt(*status);
558  } else {
559  result = regexp->fMatcher->lookingAt(startIndex, *status);
560  }
561  return result;
562 }
563 
564 
565 
566 //------------------------------------------------------------------------------
567 //
568 // uregex_find
569 //
570 //------------------------------------------------------------------------------
573  int32_t startIndex,
574  UErrorCode *status) {
575  return uregex_find64( regexp2, (int64_t)startIndex, status);
576 }
577 
580  int64_t startIndex,
581  UErrorCode *status) {
582  RegularExpression *regexp = (RegularExpression*)regexp2;
583  UBool result = FALSE;
584  if (validateRE(regexp, TRUE, status) == FALSE) {
585  return result;
586  }
587  if (startIndex == -1) {
588  regexp->fMatcher->resetPreserveRegion();
589  result = regexp->fMatcher->find(*status);
590  } else {
591  result = regexp->fMatcher->find(startIndex, *status);
592  }
593  return result;
594 }
595 
596 
597 //------------------------------------------------------------------------------
598 //
599 // uregex_findNext
600 //
601 //------------------------------------------------------------------------------
604  UErrorCode *status) {
605  RegularExpression *regexp = (RegularExpression*)regexp2;
606  if (validateRE(regexp, TRUE, status) == FALSE) {
607  return FALSE;
608  }
609  UBool result = regexp->fMatcher->find(*status);
610  return result;
611 }
612 
613 //------------------------------------------------------------------------------
614 //
615 // uregex_groupCount
616 //
617 //------------------------------------------------------------------------------
620  UErrorCode *status) {
621  RegularExpression *regexp = (RegularExpression*)regexp2;
622  if (validateRE(regexp, FALSE, status) == FALSE) {
623  return 0;
624  }
625  int32_t result = regexp->fMatcher->groupCount();
626  return result;
627 }
628 
629 
630 //------------------------------------------------------------------------------
631 //
632 // uregex_groupNumberFromName
633 //
634 //------------------------------------------------------------------------------
635 int32_t
637  const UChar *groupName,
638  int32_t nameLength,
639  UErrorCode *status) {
640  RegularExpression *regexp = (RegularExpression*)regexp2;
641  if (validateRE(regexp, FALSE, status) == FALSE) {
642  return 0;
643  }
644  int32_t result = regexp->fPat->groupNumberFromName(UnicodeString(groupName, nameLength), *status);
645  return result;
646 }
647 
648 int32_t
650  const char *groupName,
651  int32_t nameLength,
652  UErrorCode *status) {
653  RegularExpression *regexp = (RegularExpression*)regexp2;
654  if (validateRE(regexp, FALSE, status) == FALSE) {
655  return 0;
656  }
657  return regexp->fPat->groupNumberFromName(groupName, nameLength, *status);
658 }
659 
660 //------------------------------------------------------------------------------
661 //
662 // uregex_group
663 //
664 //------------------------------------------------------------------------------
667  int32_t groupNum,
668  UChar *dest,
669  int32_t destCapacity,
670  UErrorCode *status) {
671  RegularExpression *regexp = (RegularExpression*)regexp2;
672  if (validateRE(regexp, TRUE, status) == FALSE) {
673  return 0;
674  }
675  if (destCapacity < 0 || (destCapacity > 0 && dest == NULL)) {
677  return 0;
678  }
679 
680  if (destCapacity == 0 || regexp->fText != NULL) {
681  // If preflighting or if we already have the text as UChars,
682  // this is a little cheaper than extracting from the UText
683 
684  //
685  // Pick up the range of characters from the matcher
686  //
687  int32_t startIx = regexp->fMatcher->start(groupNum, *status);
688  int32_t endIx = regexp->fMatcher->end (groupNum, *status);
689  if (U_FAILURE(*status)) {
690  return 0;
691  }
692 
693  //
694  // Trim length based on buffer capacity
695  //
696  int32_t fullLength = endIx - startIx;
697  int32_t copyLength = fullLength;
698  if (copyLength < destCapacity) {
699  dest[copyLength] = 0;
700  } else if (copyLength == destCapacity) {
702  } else {
703  copyLength = destCapacity;
705  }
706 
707  //
708  // Copy capture group to user's buffer
709  //
710  if (copyLength > 0) {
711  u_memcpy(dest, &regexp->fText[startIx], copyLength);
712  }
713  return fullLength;
714  } else {
715  int64_t start = regexp->fMatcher->start64(groupNum, *status);
716  int64_t limit = regexp->fMatcher->end64(groupNum, *status);
717  if (U_FAILURE(*status)) {
718  return 0;
719  }
720  // Note edge cases:
721  // Group didn't match: start == end == -1. UText trims to 0, UText gives zero length result.
722  // Zero Length Match: start == end.
723  int32_t length = utext_extract(regexp->fMatcher->inputText(), start, limit, dest, destCapacity, status);
724  return length;
725  }
726 
727 }
728 
729 
730 //------------------------------------------------------------------------------
731 //
732 // uregex_groupUText
733 //
734 //------------------------------------------------------------------------------
737  int32_t groupNum,
738  UText *dest,
739  int64_t *groupLength,
740  UErrorCode *status) {
741  RegularExpression *regexp = (RegularExpression*)regexp2;
742  if (validateRE(regexp, TRUE, status) == FALSE) {
743  UErrorCode emptyTextStatus = U_ZERO_ERROR;
744  return (dest ? dest : utext_openUChars(NULL, NULL, 0, &emptyTextStatus));
745  }
746 
747  return regexp->fMatcher->group(groupNum, dest, *groupLength, *status);
748 }
749 
750 //------------------------------------------------------------------------------
751 //
752 // uregex_start
753 //
754 //------------------------------------------------------------------------------
757  int32_t groupNum,
758  UErrorCode *status) {
759  return (int32_t)uregex_start64( regexp2, groupNum, status);
760 }
761 
764  int32_t groupNum,
765  UErrorCode *status) {
766  RegularExpression *regexp = (RegularExpression*)regexp2;
767  if (validateRE(regexp, TRUE, status) == FALSE) {
768  return 0;
769  }
770  int64_t result = regexp->fMatcher->start64(groupNum, *status);
771  return result;
772 }
773 
774 //------------------------------------------------------------------------------
775 //
776 // uregex_end
777 //
778 //------------------------------------------------------------------------------
781  int32_t groupNum,
782  UErrorCode *status) {
783  return (int32_t)uregex_end64( regexp2, groupNum, status);
784 }
785 
788  int32_t groupNum,
789  UErrorCode *status) {
790  RegularExpression *regexp = (RegularExpression*)regexp2;
791  if (validateRE(regexp, TRUE, status) == FALSE) {
792  return 0;
793  }
794  int64_t result = regexp->fMatcher->end64(groupNum, *status);
795  return result;
796 }
797 
798 //------------------------------------------------------------------------------
799 //
800 // uregex_reset
801 //
802 //------------------------------------------------------------------------------
803 U_CAPI void U_EXPORT2
805  int32_t index,
806  UErrorCode *status) {
807  uregex_reset64( regexp2, (int64_t)index, status);
808 }
809 
810 U_CAPI void U_EXPORT2
812  int64_t index,
813  UErrorCode *status) {
814  RegularExpression *regexp = (RegularExpression*)regexp2;
815  if (validateRE(regexp, TRUE, status) == FALSE) {
816  return;
817  }
818  regexp->fMatcher->reset(index, *status);
819 }
820 
821 
822 //------------------------------------------------------------------------------
823 //
824 // uregex_setRegion
825 //
826 //------------------------------------------------------------------------------
827 U_CAPI void U_EXPORT2
829  int32_t regionStart,
830  int32_t regionLimit,
831  UErrorCode *status) {
832  uregex_setRegion64( regexp2, (int64_t)regionStart, (int64_t)regionLimit, status);
833 }
834 
835 U_CAPI void U_EXPORT2
837  int64_t regionStart,
838  int64_t regionLimit,
839  UErrorCode *status) {
840  RegularExpression *regexp = (RegularExpression*)regexp2;
841  if (validateRE(regexp, TRUE, status) == FALSE) {
842  return;
843  }
844  regexp->fMatcher->region(regionStart, regionLimit, *status);
845 }
846 
847 
848 //------------------------------------------------------------------------------
849 //
850 // uregex_setRegionAndStart
851 //
852 //------------------------------------------------------------------------------
853 U_CAPI void U_EXPORT2
855  int64_t regionStart,
856  int64_t regionLimit,
857  int64_t startIndex,
858  UErrorCode *status) {
859  RegularExpression *regexp = (RegularExpression*)regexp2;
860  if (validateRE(regexp, TRUE, status) == FALSE) {
861  return;
862  }
863  regexp->fMatcher->region(regionStart, regionLimit, startIndex, *status);
864 }
865 
866 //------------------------------------------------------------------------------
867 //
868 // uregex_regionStart
869 //
870 //------------------------------------------------------------------------------
873  UErrorCode *status) {
874  return (int32_t)uregex_regionStart64(regexp2, status);
875 }
876 
879  UErrorCode *status) {
880  RegularExpression *regexp = (RegularExpression*)regexp2;
881  if (validateRE(regexp, TRUE, status) == FALSE) {
882  return 0;
883  }
884  return regexp->fMatcher->regionStart();
885 }
886 
887 
888 //------------------------------------------------------------------------------
889 //
890 // uregex_regionEnd
891 //
892 //------------------------------------------------------------------------------
895  UErrorCode *status) {
896  return (int32_t)uregex_regionEnd64(regexp2, status);
897 }
898 
901  UErrorCode *status) {
902  RegularExpression *regexp = (RegularExpression*)regexp2;
903  if (validateRE(regexp, TRUE, status) == FALSE) {
904  return 0;
905  }
906  return regexp->fMatcher->regionEnd();
907 }
908 
909 
910 //------------------------------------------------------------------------------
911 //
912 // uregex_hasTransparentBounds
913 //
914 //------------------------------------------------------------------------------
917  UErrorCode *status) {
918  RegularExpression *regexp = (RegularExpression*)regexp2;
919  if (validateRE(regexp, FALSE, status) == FALSE) {
920  return FALSE;
921  }
922  return regexp->fMatcher->hasTransparentBounds();
923 }
924 
925 
926 //------------------------------------------------------------------------------
927 //
928 // uregex_useTransparentBounds
929 //
930 //------------------------------------------------------------------------------
931 U_CAPI void U_EXPORT2
933  UBool b,
934  UErrorCode *status) {
935  RegularExpression *regexp = (RegularExpression*)regexp2;
936  if (validateRE(regexp, FALSE, status) == FALSE) {
937  return;
938  }
939  regexp->fMatcher->useTransparentBounds(b);
940 }
941 
942 
943 //------------------------------------------------------------------------------
944 //
945 // uregex_hasAnchoringBounds
946 //
947 //------------------------------------------------------------------------------
950  UErrorCode *status) {
951  RegularExpression *regexp = (RegularExpression*)regexp2;
952  if (validateRE(regexp, FALSE, status) == FALSE) {
953  return FALSE;
954  }
955  return regexp->fMatcher->hasAnchoringBounds();
956 }
957 
958 
959 //------------------------------------------------------------------------------
960 //
961 // uregex_useAnchoringBounds
962 //
963 //------------------------------------------------------------------------------
964 U_CAPI void U_EXPORT2
966  UBool b,
967  UErrorCode *status) {
968  RegularExpression *regexp = (RegularExpression*)regexp2;
969  if (validateRE(regexp, FALSE, status) == FALSE) {
970  return;
971  }
972  regexp->fMatcher->useAnchoringBounds(b);
973 }
974 
975 
976 //------------------------------------------------------------------------------
977 //
978 // uregex_hitEnd
979 //
980 //------------------------------------------------------------------------------
983  UErrorCode *status) {
984  RegularExpression *regexp = (RegularExpression*)regexp2;
985  if (validateRE(regexp, TRUE, status) == FALSE) {
986  return FALSE;
987  }
988  return regexp->fMatcher->hitEnd();
989 }
990 
991 
992 //------------------------------------------------------------------------------
993 //
994 // uregex_requireEnd
995 //
996 //------------------------------------------------------------------------------
999  UErrorCode *status) {
1000  RegularExpression *regexp = (RegularExpression*)regexp2;
1001  if (validateRE(regexp, TRUE, status) == FALSE) {
1002  return FALSE;
1003  }
1004  return regexp->fMatcher->requireEnd();
1005 }
1006 
1007 
1008 //------------------------------------------------------------------------------
1009 //
1010 // uregex_setTimeLimit
1011 //
1012 //------------------------------------------------------------------------------
1013 U_CAPI void U_EXPORT2
1015  int32_t limit,
1016  UErrorCode *status) {
1017  RegularExpression *regexp = (RegularExpression*)regexp2;
1018  if (validateRE(regexp, FALSE, status)) {
1019  regexp->fMatcher->setTimeLimit(limit, *status);
1020  }
1021 }
1022 
1023 
1024 
1025 //------------------------------------------------------------------------------
1026 //
1027 // uregex_getTimeLimit
1028 //
1029 //------------------------------------------------------------------------------
1032  UErrorCode *status) {
1033  int32_t retVal = 0;
1034  RegularExpression *regexp = (RegularExpression*)regexp2;
1035  if (validateRE(regexp, FALSE, status)) {
1036  retVal = regexp->fMatcher->getTimeLimit();
1037  }
1038  return retVal;
1039 }
1040 
1041 
1042 
1043 //------------------------------------------------------------------------------
1044 //
1045 // uregex_setStackLimit
1046 //
1047 //------------------------------------------------------------------------------
1048 U_CAPI void U_EXPORT2
1050  int32_t limit,
1051  UErrorCode *status) {
1052  RegularExpression *regexp = (RegularExpression*)regexp2;
1053  if (validateRE(regexp, FALSE, status)) {
1054  regexp->fMatcher->setStackLimit(limit, *status);
1055  }
1056 }
1057 
1058 
1059 
1060 //------------------------------------------------------------------------------
1061 //
1062 // uregex_getStackLimit
1063 //
1064 //------------------------------------------------------------------------------
1067  UErrorCode *status) {
1068  int32_t retVal = 0;
1069  RegularExpression *regexp = (RegularExpression*)regexp2;
1070  if (validateRE(regexp, FALSE, status)) {
1071  retVal = regexp->fMatcher->getStackLimit();
1072  }
1073  return retVal;
1074 }
1075 
1076 
1077 //------------------------------------------------------------------------------
1078 //
1079 // uregex_setMatchCallback
1080 //
1081 //------------------------------------------------------------------------------
1082 U_CAPI void U_EXPORT2
1084  URegexMatchCallback *callback,
1085  const void *context,
1086  UErrorCode *status) {
1087  RegularExpression *regexp = (RegularExpression*)regexp2;
1088  if (validateRE(regexp, FALSE, status)) {
1089  regexp->fMatcher->setMatchCallback(callback, context, *status);
1090  }
1091 }
1092 
1093 
1094 //------------------------------------------------------------------------------
1095 //
1096 // uregex_getMatchCallback
1097 //
1098 //------------------------------------------------------------------------------
1099 U_CAPI void U_EXPORT2
1101  URegexMatchCallback **callback,
1102  const void **context,
1103  UErrorCode *status) {
1104  RegularExpression *regexp = (RegularExpression*)regexp2;
1105  if (validateRE(regexp, FALSE, status)) {
1106  regexp->fMatcher->getMatchCallback(*callback, *context, *status);
1107  }
1108 }
1109 
1110 
1111 //------------------------------------------------------------------------------
1112 //
1113 // uregex_setMatchProgressCallback
1114 //
1115 //------------------------------------------------------------------------------
1116 U_CAPI void U_EXPORT2
1118  URegexFindProgressCallback *callback,
1119  const void *context,
1120  UErrorCode *status) {
1121  RegularExpression *regexp = (RegularExpression*)regexp2;
1122  if (validateRE(regexp, FALSE, status)) {
1123  regexp->fMatcher->setFindProgressCallback(callback, context, *status);
1124  }
1125 }
1126 
1127 
1128 //------------------------------------------------------------------------------
1129 //
1130 // uregex_getMatchCallback
1131 //
1132 //------------------------------------------------------------------------------
1133 U_CAPI void U_EXPORT2
1135  URegexFindProgressCallback **callback,
1136  const void **context,
1137  UErrorCode *status) {
1138  RegularExpression *regexp = (RegularExpression*)regexp2;
1139  if (validateRE(regexp, FALSE, status)) {
1140  regexp->fMatcher->getFindProgressCallback(*callback, *context, *status);
1141  }
1142 }
1143 
1144 
1145 //------------------------------------------------------------------------------
1146 //
1147 // uregex_replaceAll
1148 //
1149 //------------------------------------------------------------------------------
1152  const UChar *replacementText,
1153  int32_t replacementLength,
1154  UChar *destBuf,
1155  int32_t destCapacity,
1156  UErrorCode *status) {
1157  RegularExpression *regexp = (RegularExpression*)regexp2;
1158  if (validateRE(regexp, TRUE, status) == FALSE) {
1159  return 0;
1160  }
1161  if (replacementText == NULL || replacementLength < -1 ||
1162  (destBuf == NULL && destCapacity > 0) ||
1163  destCapacity < 0) {
1165  return 0;
1166  }
1167 
1168  int32_t len = 0;
1169 
1170  uregex_reset(regexp2, 0, status);
1171 
1172  // Note: Seperate error code variables for findNext() and appendReplacement()
1173  // are used so that destination buffer overflow errors
1174  // in appendReplacement won't stop findNext() from working.
1175  // appendReplacement() and appendTail() special case incoming buffer
1176  // overflow errors, continuing to return the correct length.
1177  UErrorCode findStatus = *status;
1178  while (uregex_findNext(regexp2, &findStatus)) {
1179  len += uregex_appendReplacement(regexp2, replacementText, replacementLength,
1180  &destBuf, &destCapacity, status);
1181  }
1182  len += uregex_appendTail(regexp2, &destBuf, &destCapacity, status);
1183 
1184  if (U_FAILURE(findStatus)) {
1185  // If anything went wrong with the findNext(), make that error trump
1186  // whatever may have happened with the append() operations.
1187  // Errors in findNext() are not expected.
1188  *status = findStatus;
1189  }
1190 
1191  return len;
1192 }
1193 
1194 
1195 //------------------------------------------------------------------------------
1196 //
1197 // uregex_replaceAllUText
1198 //
1199 //------------------------------------------------------------------------------
1202  UText *replacementText,
1203  UText *dest,
1204  UErrorCode *status) {
1205  RegularExpression *regexp = (RegularExpression*)regexp2;
1206  if (validateRE(regexp, TRUE, status) == FALSE) {
1207  return 0;
1208  }
1209  if (replacementText == NULL) {
1211  return 0;
1212  }
1213 
1214  dest = regexp->fMatcher->replaceAll(replacementText, dest, *status);
1215  return dest;
1216 }
1217 
1218 
1219 //------------------------------------------------------------------------------
1220 //
1221 // uregex_replaceFirst
1222 //
1223 //------------------------------------------------------------------------------
1226  const UChar *replacementText,
1227  int32_t replacementLength,
1228  UChar *destBuf,
1229  int32_t destCapacity,
1230  UErrorCode *status) {
1231  RegularExpression *regexp = (RegularExpression*)regexp2;
1232  if (validateRE(regexp, TRUE, status) == FALSE) {
1233  return 0;
1234  }
1235  if (replacementText == NULL || replacementLength < -1 ||
1236  (destBuf == NULL && destCapacity > 0) ||
1237  destCapacity < 0) {
1239  return 0;
1240  }
1241 
1242  int32_t len = 0;
1243  UBool findSucceeded;
1244  uregex_reset(regexp2, 0, status);
1245  findSucceeded = uregex_find(regexp2, 0, status);
1246  if (findSucceeded) {
1247  len = uregex_appendReplacement(regexp2, replacementText, replacementLength,
1248  &destBuf, &destCapacity, status);
1249  }
1250  len += uregex_appendTail(regexp2, &destBuf, &destCapacity, status);
1251 
1252  return len;
1253 }
1254 
1255 
1256 //------------------------------------------------------------------------------
1257 //
1258 // uregex_replaceFirstUText
1259 //
1260 //------------------------------------------------------------------------------
1263  UText *replacementText,
1264  UText *dest,
1265  UErrorCode *status) {
1266  RegularExpression *regexp = (RegularExpression*)regexp2;
1267  if (validateRE(regexp, TRUE, status) == FALSE) {
1268  return 0;
1269  }
1270  if (replacementText == NULL) {
1272  return 0;
1273  }
1274 
1275  dest = regexp->fMatcher->replaceFirst(replacementText, dest, *status);
1276  return dest;
1277 }
1278 
1279 
1280 //------------------------------------------------------------------------------
1281 //
1282 // uregex_appendReplacement
1283 //
1284 //------------------------------------------------------------------------------
1285 
1287 //
1288 // Dummy class, because these functions need to be friends of class RegexMatcher,
1289 // and stand-alone C functions don't work as friends
1290 //
1291 class RegexCImpl {
1292  public:
1293  inline static int32_t appendReplacement(RegularExpression *regexp,
1294  const UChar *replacementText,
1295  int32_t replacementLength,
1296  UChar **destBuf,
1297  int32_t *destCapacity,
1298  UErrorCode *status);
1299 
1300  inline static int32_t appendTail(RegularExpression *regexp,
1301  UChar **destBuf,
1302  int32_t *destCapacity,
1303  UErrorCode *status);
1304 
1305  inline static int32_t split(RegularExpression *regexp,
1306  UChar *destBuf,
1307  int32_t destCapacity,
1308  int32_t *requiredCapacity,
1309  UChar *destFields[],
1310  int32_t destFieldsCapacity,
1311  UErrorCode *status);
1312 };
1313 
1315 
1316 
1317 
1318 static const UChar BACKSLASH = 0x5c;
1319 static const UChar DOLLARSIGN = 0x24;
1320 static const UChar LEFTBRACKET = 0x7b;
1321 static const UChar RIGHTBRACKET = 0x7d;
1322 
1323 //
1324 // Move a character to an output buffer, with bounds checking on the index.
1325 // Index advances even if capacity is exceeded, for preflight size computations.
1326 // This little sequence is used a LOT.
1327 //
1328 static inline void appendToBuf(UChar c, int32_t *idx, UChar *buf, int32_t bufCapacity) {
1329  if (*idx < bufCapacity) {
1330  buf[*idx] = c;
1331  }
1332  (*idx)++;
1333 }
1334 
1335 
1336 //
1337 // appendReplacement, the actual implementation.
1338 //
1340  const UChar *replacementText,
1341  int32_t replacementLength,
1342  UChar **destBuf,
1343  int32_t *destCapacity,
1344  UErrorCode *status) {
1345 
1346  // If we come in with a buffer overflow error, don't suppress the operation.
1347  // A series of appendReplacements, appendTail need to correctly preflight
1348  // the buffer size when an overflow happens somewhere in the middle.
1349  UBool pendingBufferOverflow = FALSE;
1350  if (*status == U_BUFFER_OVERFLOW_ERROR && destCapacity != NULL && *destCapacity == 0) {
1351  pendingBufferOverflow = TRUE;
1352  *status = U_ZERO_ERROR;
1353  }
1354 
1355  //
1356  // Validate all paramters
1357  //
1358  if (validateRE(regexp, TRUE, status) == FALSE) {
1359  return 0;
1360  }
1361  if (replacementText == NULL || replacementLength < -1 ||
1362  destCapacity == NULL || destBuf == NULL ||
1363  (*destBuf == NULL && *destCapacity > 0) ||
1364  *destCapacity < 0) {
1366  return 0;
1367  }
1368 
1369  RegexMatcher *m = regexp->fMatcher;
1370  if (m->fMatch == FALSE) {
1372  return 0;
1373  }
1374 
1375  UChar *dest = *destBuf;
1376  int32_t capacity = *destCapacity;
1377  int32_t destIdx = 0;
1378  int32_t i;
1379 
1380  // If it wasn't supplied by the caller, get the length of the replacement text.
1381  // TODO: slightly smarter logic in the copy loop could watch for the NUL on
1382  // the fly and avoid this step.
1383  if (replacementLength == -1) {
1384  replacementLength = u_strlen(replacementText);
1385  }
1386 
1387  // Copy input string from the end of previous match to start of current match
1388  if (regexp->fText != NULL) {
1389  int32_t matchStart;
1390  int32_t lastMatchEnd;
1391  if (UTEXT_USES_U16(m->fInputText)) {
1392  lastMatchEnd = (int32_t)m->fLastMatchEnd;
1393  matchStart = (int32_t)m->fMatchStart;
1394  } else {
1395  // !!!: Would like a better way to do this!
1396  UErrorCode tempStatus = U_ZERO_ERROR;
1397  lastMatchEnd = utext_extract(m->fInputText, 0, m->fLastMatchEnd, NULL, 0, &tempStatus);
1398  tempStatus = U_ZERO_ERROR;
1399  matchStart = lastMatchEnd + utext_extract(m->fInputText, m->fLastMatchEnd, m->fMatchStart, NULL, 0, &tempStatus);
1400  }
1401  for (i=lastMatchEnd; i<matchStart; i++) {
1402  appendToBuf(regexp->fText[i], &destIdx, dest, capacity);
1403  }
1404  } else {
1405  UErrorCode possibleOverflowError = U_ZERO_ERROR; // ignore
1406  destIdx += utext_extract(m->fInputText, m->fLastMatchEnd, m->fMatchStart,
1407  dest==NULL?NULL:&dest[destIdx], REMAINING_CAPACITY(destIdx, capacity),
1408  &possibleOverflowError);
1409  }
1410  U_ASSERT(destIdx >= 0);
1411 
1412  // scan the replacement text, looking for substitutions ($n) and \escapes.
1413  int32_t replIdx = 0;
1414  while (replIdx < replacementLength && U_SUCCESS(*status)) {
1415  UChar c = replacementText[replIdx];
1416  replIdx++;
1417  if (c != DOLLARSIGN && c != BACKSLASH) {
1418  // Common case, no substitution, no escaping,
1419  // just copy the char to the dest buf.
1420  appendToBuf(c, &destIdx, dest, capacity);
1421  continue;
1422  }
1423 
1424  if (c == BACKSLASH) {
1425  // Backslash Escape. Copy the following char out without further checks.
1426  // Note: Surrogate pairs don't need any special handling
1427  // The second half wont be a '$' or a '\', and
1428  // will move to the dest normally on the next
1429  // loop iteration.
1430  if (replIdx >= replacementLength) {
1431  break;
1432  }
1433  c = replacementText[replIdx];
1434 
1435  if (c==0x55/*U*/ || c==0x75/*u*/) {
1436  // We have a \udddd or \Udddddddd escape sequence.
1437  UChar32 escapedChar =
1439  &replIdx, // Index is updated by unescapeAt
1440  replacementLength, // Length of replacement text
1441  (void *)replacementText);
1442 
1443  if (escapedChar != (UChar32)0xFFFFFFFF) {
1444  if (escapedChar <= 0xffff) {
1445  appendToBuf((UChar)escapedChar, &destIdx, dest, capacity);
1446  } else {
1447  appendToBuf(U16_LEAD(escapedChar), &destIdx, dest, capacity);
1448  appendToBuf(U16_TRAIL(escapedChar), &destIdx, dest, capacity);
1449  }
1450  continue;
1451  }
1452  // Note: if the \u escape was invalid, just fall through and
1453  // treat it as a plain <anything> escape.
1454  }
1455 
1456  // Plain backslash escape. Just put out the escaped character.
1457  appendToBuf(c, &destIdx, dest, capacity);
1458 
1459  replIdx++;
1460  continue;
1461  }
1462 
1463  // We've got a $. Pick up the following capture group name or number.
1464  // For numbers, consume only digits that produce a valid capture group for the pattern.
1465 
1466  int32_t groupNum = 0;
1467  U_ASSERT(c == DOLLARSIGN);
1468  UChar32 c32 = -1;
1469  if (replIdx < replacementLength) {
1470  U16_GET(replacementText, 0, replIdx, replacementLength, c32);
1471  }
1472  if (u_isdigit(c32)) {
1473  int32_t numDigits = 0;
1474  int32_t numCaptureGroups = m->fPattern->fGroupMap->size();
1475  for (;;) {
1476  if (replIdx >= replacementLength) {
1477  break;
1478  }
1479  U16_GET(replacementText, 0, replIdx, replacementLength, c32);
1480  if (u_isdigit(c32) == FALSE) {
1481  break;
1482  }
1483 
1484  int32_t digitVal = u_charDigitValue(c32);
1485  if (groupNum * 10 + digitVal <= numCaptureGroups) {
1486  groupNum = groupNum * 10 + digitVal;
1487  U16_FWD_1(replacementText, replIdx, replacementLength);
1488  numDigits++;
1489  } else {
1490  if (numDigits == 0) {
1492  }
1493  break;
1494  }
1495  }
1496  } else if (c32 == LEFTBRACKET) {
1497  // Scan for Named Capture Group, ${name}.
1498  UnicodeString groupName;
1499  U16_FWD_1(replacementText, replIdx, replacementLength);
1500  while (U_SUCCESS(*status) && c32 != RIGHTBRACKET) {
1501  if (replIdx >= replacementLength) {
1503  break;
1504  }
1505  U16_NEXT(replacementText, replIdx, replacementLength, c32);
1506  if ((c32 >= 0x41 && c32 <= 0x5a) || // A..Z
1507  (c32 >= 0x61 && c32 <= 0x7a) || // a..z
1508  (c32 >= 0x31 && c32 <= 0x39)) { // 0..9
1509  groupName.append(c32);
1510  } else if (c32 == RIGHTBRACKET) {
1511  groupNum = regexp->fPat->fNamedCaptureMap ?
1512  uhash_geti(regexp->fPat->fNamedCaptureMap, &groupName) : 0;
1513  if (groupNum == 0) {
1514  // Name not defined by pattern.
1516  }
1517  } else {
1518  // Character was something other than a name char or a closing '}'
1520  }
1521  }
1522  } else {
1523  // $ not followed by {name} or digits.
1525  }
1526 
1527 
1528  // Finally, append the capture group data to the destination.
1529  if (U_SUCCESS(*status)) {
1530  destIdx += uregex_group((URegularExpression*)regexp, groupNum,
1531  dest==NULL?NULL:&dest[destIdx], REMAINING_CAPACITY(destIdx, capacity), status);
1532  if (*status == U_BUFFER_OVERFLOW_ERROR) {
1533  // Ignore buffer overflow when extracting the group. We need to
1534  // continue on to get full size of the untruncated result. We will
1535  // raise our own buffer overflow error at the end.
1536  *status = U_ZERO_ERROR;
1537  }
1538  }
1539 
1540  if (U_FAILURE(*status)) {
1541  // bad group number or name.
1542  break;
1543  }
1544  }
1545 
1546  //
1547  // Nul Terminate the dest buffer if possible.
1548  // Set the appropriate buffer overflow or not terminated error, if needed.
1549  //
1550  if (destIdx < capacity) {
1551  dest[destIdx] = 0;
1552  } else if (U_SUCCESS(*status)) {
1553  if (destIdx == *destCapacity) {
1555  } else {
1557  }
1558  }
1559 
1560  //
1561  // Return an updated dest buffer and capacity to the caller.
1562  //
1563  if (destIdx > 0 && *destCapacity > 0) {
1564  if (destIdx < capacity) {
1565  *destBuf += destIdx;
1566  *destCapacity -= destIdx;
1567  } else {
1568  *destBuf += capacity;
1569  *destCapacity = 0;
1570  }
1571  }
1572 
1573  // If we came in with a buffer overflow, make sure we go out with one also.
1574  // (A zero length match right at the end of the previous match could
1575  // make this function succeed even though a previous call had overflowed the buf)
1576  if (pendingBufferOverflow && U_SUCCESS(*status)) {
1578  }
1579 
1580  return destIdx;
1581 }
1582 
1583 //
1584 // appendReplacement the actual API function,
1585 //
1588  const UChar *replacementText,
1589  int32_t replacementLength,
1590  UChar **destBuf,
1591  int32_t *destCapacity,
1592  UErrorCode *status) {
1593 
1594  RegularExpression *regexp = (RegularExpression*)regexp2;
1596  regexp, replacementText, replacementLength,destBuf, destCapacity, status);
1597 }
1598 
1599 //
1600 // uregex_appendReplacementUText...can just use the normal C++ method
1601 //
1602 U_CAPI void U_EXPORT2
1604  UText *replText,
1605  UText *dest,
1606  UErrorCode *status) {
1607  RegularExpression *regexp = (RegularExpression*)regexp2;
1608  regexp->fMatcher->appendReplacement(dest, replText, *status);
1609 }
1610 
1611 
1612 //------------------------------------------------------------------------------
1613 //
1614 // uregex_appendTail
1615 //
1616 //------------------------------------------------------------------------------
1618  UChar **destBuf,
1619  int32_t *destCapacity,
1620  UErrorCode *status)
1621 {
1622 
1623  // If we come in with a buffer overflow error, don't suppress the operation.
1624  // A series of appendReplacements, appendTail need to correctly preflight
1625  // the buffer size when an overflow happens somewhere in the middle.
1626  UBool pendingBufferOverflow = FALSE;
1627  if (*status == U_BUFFER_OVERFLOW_ERROR && destCapacity != NULL && *destCapacity == 0) {
1628  pendingBufferOverflow = TRUE;
1629  *status = U_ZERO_ERROR;
1630  }
1631 
1632  if (validateRE(regexp, TRUE, status) == FALSE) {
1633  return 0;
1634  }
1635 
1636  if (destCapacity == NULL || destBuf == NULL ||
1637  (*destBuf == NULL && *destCapacity > 0) ||
1638  *destCapacity < 0)
1639  {
1641  return 0;
1642  }
1643 
1644  RegexMatcher *m = regexp->fMatcher;
1645 
1646  int32_t destIdx = 0;
1647  int32_t destCap = *destCapacity;
1648  UChar *dest = *destBuf;
1649 
1650  if (regexp->fText != NULL) {
1651  int32_t srcIdx;
1652  int64_t nativeIdx = (m->fMatch ? m->fMatchEnd : m->fLastMatchEnd);
1653  if (nativeIdx == -1) {
1654  srcIdx = 0;
1655  } else if (UTEXT_USES_U16(m->fInputText)) {
1656  srcIdx = (int32_t)nativeIdx;
1657  } else {
1658  UErrorCode newStatus = U_ZERO_ERROR;
1659  srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &newStatus);
1660  }
1661 
1662  for (;;) {
1663  U_ASSERT(destIdx >= 0);
1664 
1665  if (srcIdx == regexp->fTextLength) {
1666  break;
1667  }
1668  UChar c = regexp->fText[srcIdx];
1669  if (c == 0 && regexp->fTextLength == -1) {
1670  regexp->fTextLength = srcIdx;
1671  break;
1672  }
1673 
1674  if (destIdx < destCap) {
1675  dest[destIdx] = c;
1676  } else {
1677  // We've overflowed the dest buffer.
1678  // If the total input string length is known, we can
1679  // compute the total buffer size needed without scanning through the string.
1680  if (regexp->fTextLength > 0) {
1681  destIdx += (regexp->fTextLength - srcIdx);
1682  break;
1683  }
1684  }
1685  srcIdx++;
1686  destIdx++;
1687  }
1688  } else {
1689  int64_t srcIdx;
1690  if (m->fMatch) {
1691  // The most recent call to find() succeeded.
1692  srcIdx = m->fMatchEnd;
1693  } else {
1694  // The last call to find() on this matcher failed().
1695  // Look back to the end of the last find() that succeeded for src index.
1696  srcIdx = m->fLastMatchEnd;
1697  if (srcIdx == -1) {
1698  // There has been no successful match with this matcher.
1699  // We want to copy the whole string.
1700  srcIdx = 0;
1701  }
1702  }
1703 
1704  destIdx = utext_extract(m->fInputText, srcIdx, m->fInputLength, dest, destCap, status);
1705  }
1706 
1707  //
1708  // NUL terminate the output string, if possible, otherwise issue the
1709  // appropriate error or warning.
1710  //
1711  if (destIdx < destCap) {
1712  dest[destIdx] = 0;
1713  } else if (destIdx == destCap) {
1715  } else {
1717  }
1718 
1719  //
1720  // Update the user's buffer ptr and capacity vars to reflect the
1721  // amount used.
1722  //
1723  if (destIdx < destCap) {
1724  *destBuf += destIdx;
1725  *destCapacity -= destIdx;
1726  } else if (*destBuf != NULL) {
1727  *destBuf += destCap;
1728  *destCapacity = 0;
1729  }
1730 
1731  if (pendingBufferOverflow && U_SUCCESS(*status)) {
1733  }
1734 
1735  return destIdx;
1736 }
1737 
1738 
1739 //
1740 // appendTail the actual API function
1741 //
1744  UChar **destBuf,
1745  int32_t *destCapacity,
1746  UErrorCode *status) {
1747  RegularExpression *regexp = (RegularExpression*)regexp2;
1748  return RegexCImpl::appendTail(regexp, destBuf, destCapacity, status);
1749 }
1750 
1751 
1752 //
1753 // uregex_appendTailUText...can just use the normal C++ method
1754 //
1757  UText *dest,
1758  UErrorCode *status) {
1759  RegularExpression *regexp = (RegularExpression*)regexp2;
1760  return regexp->fMatcher->appendTail(dest, *status);
1761 }
1762 
1763 
1764 //------------------------------------------------------------------------------
1765 //
1766 // copyString Internal utility to copy a string to an output buffer,
1767 // while managing buffer overflow and preflight size
1768 // computation. NUL termination is added to destination,
1769 // and the NUL is counted in the output size.
1770 //
1771 //------------------------------------------------------------------------------
1772 #if 0
1773 static void copyString(UChar *destBuffer, // Destination buffer.
1774  int32_t destCapacity, // Total capacity of dest buffer
1775  int32_t *destIndex, // Index into dest buffer. Updated on return.
1776  // Update not clipped to destCapacity.
1777  const UChar *srcPtr, // Pointer to source string
1778  int32_t srcLen) // Source string len.
1779 {
1780  int32_t si;
1781  int32_t di = *destIndex;
1782  UChar c;
1783 
1784  for (si=0; si<srcLen; si++) {
1785  c = srcPtr[si];
1786  if (di < destCapacity) {
1787  destBuffer[di] = c;
1788  di++;
1789  } else {
1790  di += srcLen - si;
1791  break;
1792  }
1793  }
1794  if (di<destCapacity) {
1795  destBuffer[di] = 0;
1796  }
1797  di++;
1798  *destIndex = di;
1799 }
1800 #endif
1801 
1802 //------------------------------------------------------------------------------
1803 //
1804 // uregex_split
1805 //
1806 //------------------------------------------------------------------------------
1808  UChar *destBuf,
1809  int32_t destCapacity,
1810  int32_t *requiredCapacity,
1811  UChar *destFields[],
1812  int32_t destFieldsCapacity,
1813  UErrorCode *status) {
1814  //
1815  // Reset for the input text
1816  //
1817  regexp->fMatcher->reset();
1818  UText *inputText = regexp->fMatcher->fInputText;
1819  int64_t nextOutputStringStart = 0;
1820  int64_t inputLen = regexp->fMatcher->fInputLength;
1821  if (inputLen == 0) {
1822  return 0;
1823  }
1824 
1825  //
1826  // Loop through the input text, searching for the delimiter pattern
1827  //
1828  int32_t i; // Index of the field being processed.
1829  int32_t destIdx = 0; // Next available position in destBuf;
1830  int32_t numCaptureGroups = regexp->fMatcher->groupCount();
1831  UErrorCode tStatus = U_ZERO_ERROR; // Want to ignore any buffer overflow errors so that the strings are still counted
1832  for (i=0; ; i++) {
1833  if (i>=destFieldsCapacity-1) {
1834  // There are one or zero output strings left.
1835  // Fill the last output string with whatever is left from the input, then exit the loop.
1836  // ( i will be == destFieldsCapacity if we filled the output array while processing
1837  // capture groups of the delimiter expression, in which case we will discard the
1838  // last capture group saved in favor of the unprocessed remainder of the
1839  // input string.)
1840  if (inputLen > nextOutputStringStart) {
1841  if (i != destFieldsCapacity-1) {
1842  // No fields are left. Recycle the last one for holding the trailing part of
1843  // the input string.
1844  i = destFieldsCapacity-1;
1845  destIdx = (int32_t)(destFields[i] - destFields[0]);
1846  }
1847 
1848  destFields[i] = &destBuf[destIdx];
1849  destIdx += 1 + utext_extract(inputText, nextOutputStringStart, inputLen,
1850  &destBuf[destIdx], REMAINING_CAPACITY(destIdx, destCapacity), status);
1851  }
1852  break;
1853  }
1854 
1855  if (regexp->fMatcher->find()) {
1856  // We found another delimiter. Move everything from where we started looking
1857  // up until the start of the delimiter into the next output string.
1858  destFields[i] = &destBuf[destIdx];
1859 
1860  destIdx += 1 + utext_extract(inputText, nextOutputStringStart, regexp->fMatcher->fMatchStart,
1861  &destBuf[destIdx], REMAINING_CAPACITY(destIdx, destCapacity), &tStatus);
1862  if (tStatus == U_BUFFER_OVERFLOW_ERROR) {
1863  tStatus = U_ZERO_ERROR;
1864  } else {
1865  *status = tStatus;
1866  }
1867  nextOutputStringStart = regexp->fMatcher->fMatchEnd;
1868 
1869  // If the delimiter pattern has capturing parentheses, the captured
1870  // text goes out into the next n destination strings.
1871  int32_t groupNum;
1872  for (groupNum=1; groupNum<=numCaptureGroups; groupNum++) {
1873  // If we've run out of output string slots, bail out.
1874  if (i==destFieldsCapacity-1) {
1875  break;
1876  }
1877  i++;
1878 
1879  // Set up to extract the capture group contents into the dest buffer.
1880  destFields[i] = &destBuf[destIdx];
1881  tStatus = U_ZERO_ERROR;
1883  groupNum,
1884  destFields[i],
1885  REMAINING_CAPACITY(destIdx, destCapacity),
1886  &tStatus);
1887  destIdx += t + 1; // Record the space used in the output string buffer.
1888  // +1 for the NUL that terminates the string.
1889  if (tStatus == U_BUFFER_OVERFLOW_ERROR) {
1890  tStatus = U_ZERO_ERROR;
1891  } else {
1892  *status = tStatus;
1893  }
1894  }
1895 
1896  if (nextOutputStringStart == inputLen) {
1897  // The delimiter was at the end of the string.
1898  // Output an empty string, and then we are done.
1899  if (destIdx < destCapacity) {
1900  destBuf[destIdx] = 0;
1901  }
1902  if (i < destFieldsCapacity-1) {
1903  ++i;
1904  }
1905  if (destIdx < destCapacity) {
1906  destFields[i] = destBuf + destIdx;
1907  }
1908  ++destIdx;
1909  break;
1910  }
1911 
1912  }
1913  else
1914  {
1915  // We ran off the end of the input while looking for the next delimiter.
1916  // All the remaining text goes into the current output string.
1917  destFields[i] = &destBuf[destIdx];
1918  destIdx += 1 + utext_extract(inputText, nextOutputStringStart, inputLen,
1919  &destBuf[destIdx], REMAINING_CAPACITY(destIdx, destCapacity), status);
1920  break;
1921  }
1922  }
1923 
1924  // Zero out any unused portion of the destFields array
1925  int j;
1926  for (j=i+1; j<destFieldsCapacity; j++) {
1927  destFields[j] = NULL;
1928  }
1929 
1930  if (requiredCapacity != NULL) {
1931  *requiredCapacity = destIdx;
1932  }
1933  if (destIdx > destCapacity) {
1935  }
1936  return i+1;
1937 }
1938 
1939 //
1940 // uregex_split The actual API function
1941 //
1944  UChar *destBuf,
1945  int32_t destCapacity,
1946  int32_t *requiredCapacity,
1947  UChar *destFields[],
1948  int32_t destFieldsCapacity,
1949  UErrorCode *status) {
1950  RegularExpression *regexp = (RegularExpression*)regexp2;
1951  if (validateRE(regexp, TRUE, status) == FALSE) {
1952  return 0;
1953  }
1954  if ((destBuf == NULL && destCapacity > 0) ||
1955  destCapacity < 0 ||
1956  destFields == NULL ||
1957  destFieldsCapacity < 1 ) {
1959  return 0;
1960  }
1961 
1962  return RegexCImpl::split(regexp, destBuf, destCapacity, requiredCapacity, destFields, destFieldsCapacity, status);
1963 }
1964 
1965 
1966 //
1967 // uregex_splitUText...can just use the normal C++ method
1968 //
1971  UText *destFields[],
1972  int32_t destFieldsCapacity,
1973  UErrorCode *status) {
1974  RegularExpression *regexp = (RegularExpression*)regexp2;
1975  return regexp->fMatcher->split(regexp->fMatcher->inputText(), destFields, destFieldsCapacity, *status);
1976 }
1977 
1978 
1979 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS
1980 
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 patternLength
#define text(a)
Definition: aptex-macros.h:925
static int32_t appendTail(RegularExpression *regexp, UChar **destBuf, int32_t *destCapacity, UErrorCode *status)
Definition: uregex.cpp:1617
static int32_t appendReplacement(RegularExpression *regexp, const UChar *replacementText, int32_t replacementLength, UChar **destBuf, int32_t *destCapacity, UErrorCode *status)
Definition: uregex.cpp:1339
static int32_t split(RegularExpression *regexp, UChar *destBuf, int32_t destCapacity, int32_t *requiredCapacity, UChar *destFields[], int32_t destFieldsCapacity, UErrorCode *status)
Definition: uregex.cpp:1807
#define b
Definition: jpegint.h:372
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
void ErrorExit(const char *sb1)
Definition: detex.c:4688
char * copyString(const char *s)
Definition: gmem.cc:390
#define c(n)
Definition: gpos-common.c:150
unsigned char UChar
Definition: bzip2.c:163
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p scientific i
Definition: afcover.h:80
FT_UInt idx
Definition: cffcmap.c:135
signed __int64 int64_t
Definition: stdint.h:89
unsigned int uint32_t
Definition: stdint.h:80
signed int int32_t
Definition: stdint.h:77
#define buf
int capacity
Definition: pdfcolor.c:1335
#define length(c)
Definition: ctangleboot.c:65
#define dest
#define U_EXPORT2
Definition: platform.h:844
#define status
#define flags
C API: Unicode string handling functions.
C++ API: Regular Expressions.
#define UTEXT_USES_U16(ut)
Definition: regextxt.h:25
#define UTEXT_FULL_TEXT_IN_CHUNK(ut, len)
Definition: regextxt.h:34
C_Op * compile(Source *s)
#define int32_t
Definition: stdint.in.h:167
int32_t fMagic
Definition: uregex.cpp:38
RegexPattern * fPat
Definition: uregex.cpp:39
int32_t fTextLength
Definition: uregex.cpp:45
const UChar * fText
Definition: uregex.cpp:44
RegexMatcher * fMatcher
Definition: uregex.cpp:43
int32_t fPatStringLen
Definition: uregex.cpp:42
UChar * fPatString
Definition: uregex.cpp:41
u_atomic_int32_t * fPatRefCount
Definition: uregex.cpp:40
Definition: utext.h:1328
const UChar * chunkContents
Definition: utext.h:1422
Definition: mendex.h:20
Definition: execute.c:108
Definition: sh.h:1345
Definition: dvips.h:235
int j
Definition: t4ht.c:1589
m
Definition: tex4ht.c:3990
#define U_ASSERT(exp)
Definition: uassert.h:37
C API: Unicode Properties.
int32_t UChar32
Definition: umachine.h:467
int8_t UBool
Definition: umachine.h:269
#define U_CAPI
Definition: umachine.h:110
int32_t umtx_atomic_inc(u_atomic_int32_t *var)
Definition: umutex.h:84
U_NAMESPACE_BEGIN typedef std::atomic< int32_t > u_atomic_int32_t
Definition: umutex.h:73
int32_t umtx_atomic_dec(u_atomic_int32_t *var)
Definition: umutex.h:88
C++ API: Unicode String.
static const UChar RIGHTBRACKET
Definition: uregex.cpp:1321
#define REMAINING_CAPACITY(idx, len)
Definition: uregex.cpp:32
U_NAMESPACE_END static U_NAMESPACE_USE UBool validateRE(const RegularExpression *re, UBool requiresText, UErrorCode *status)
Definition: uregex.cpp:87
static const int32_t REXP_MAGIC
Definition: uregex.cpp:50
static void appendToBuf(UChar c, int32_t *idx, UChar *buf, int32_t bufCapacity)
Definition: uregex.cpp:1328
static U_NAMESPACE_END const UChar BACKSLASH
Definition: uregex.cpp:1318
static const UChar DOLLARSIGN
Definition: uregex.cpp:1319
static const UChar LEFTBRACKET
Definition: uregex.cpp:1320
C API: Regular Expressions.
UBool URegexFindProgressCallback(const void *context, int64_t matchIndex)
Definition: uregex.h:1576
UBool URegexMatchCallback(const void *context, int32_t steps)
Definition: uregex.h:1502
struct URegularExpression URegularExpression
Definition: uregex.h:45
#define uregex_regionStart64
Definition: urename.h:1515
#define uregex_close
Definition: urename.h:1481
#define uregex_end64
Definition: urename.h:1483
#define uregex_findNext
Definition: urename.h:1486
#define uregex_groupCount
Definition: urename.h:1495
#define uregex_hasTransparentBounds
Definition: urename.h:1500
#define u_memcpy
Definition: urename.h:326
#define uregex_setText
Definition: urename.h:1529
#define uregex_regionEnd
Definition: urename.h:1512
#define u_isdigit
Definition: urename.h:307
#define uregex_pattern
Definition: urename.h:1509
#define uregex_reset64
Definition: urename.h:1522
#define uregex_find
Definition: urename.h:1484
#define uregex_requireEnd
Definition: urename.h:1520
#define uregex_start
Definition: urename.h:1534
#define uregex_groupNumberFromCName
Definition: urename.h:1496
#define uregex_ucstr_unescape_charAt
Definition: urename.h:1536
#define uregex_appendReplacementUText
Definition: urename.h:1477
#define uregex_patternUText
Definition: urename.h:1510
#define uregex_matches
Definition: urename.h:1504
#define uregex_getTimeLimit
Definition: urename.h:1492
#define utext_close
Definition: urename.h:1771
#define uregex_getFindProgressCallback
Definition: urename.h:1488
#define uregex_lookingAt64
Definition: urename.h:1503
#define uregex_flags
Definition: urename.h:1487
#define uhash_geti
Definition: urename.h:972
#define uregex_split
Definition: urename.h:1532
#define u_charDigitValue
Definition: urename.h:214
#define uregex_replaceFirstUText
Definition: urename.h:1519
#define uregex_appendTailUText
Definition: urename.h:1479
#define uregex_end
Definition: urename.h:1482
#define uregex_setRegion
Definition: urename.h:1525
#define uregex_getText
Definition: urename.h:1491
#define uregex_clone
Definition: urename.h:1480
#define uregex_setRegionAndStart
Definition: urename.h:1527
#define uregex_regionEnd64
Definition: urename.h:1513
#define uregex_open
Definition: urename.h:1506
#define uregex_replaceAll
Definition: urename.h:1516
#define uregex_setFindProgressCallback
Definition: urename.h:1523
#define uregex_useTransparentBounds
Definition: urename.h:1538
#define uregex_splitUText
Definition: urename.h:1533
#define uregex_getStackLimit
Definition: urename.h:1490
#define u_unescapeAt
Definition: urename.h:407
#define uregex_start64
Definition: urename.h:1535
#define uprv_malloc
Definition: urename.h:1435
#define uregex_lookingAt
Definition: urename.h:1502
#define uregex_setTimeLimit
Definition: urename.h:1530
#define uregex_getMatchCallback
Definition: urename.h:1489
#define uregex_group
Definition: urename.h:1494
#define uprv_free
Definition: urename.h:1414
#define uregex_openUText
Definition: urename.h:1508
#define uregex_setRegion64
Definition: urename.h:1526
#define uregex_useAnchoringBounds
Definition: urename.h:1537
#define uregex_appendTail
Definition: urename.h:1478
#define uregex_hasAnchoringBounds
Definition: urename.h:1499
#define uregex_matches64
Definition: urename.h:1505
#define uregex_setStackLimit
Definition: urename.h:1528
#define uregex_hitEnd
Definition: urename.h:1501
#define utext_openUChars
Definition: urename.h:1789
#define uregex_getUText
Definition: urename.h:1493
#define uregex_find64
Definition: urename.h:1485
#define utext_nativeLength
Definition: urename.h:1783
#define utext_extract
Definition: urename.h:1775
#define u_strlen
Definition: urename.h:384
#define uregex_replaceFirst
Definition: urename.h:1518
#define uregex_groupNumberFromName
Definition: urename.h:1497
#define uregex_regionStart
Definition: urename.h:1514
#define uregex_appendReplacement
Definition: urename.h:1476
#define uregex_setUText
Definition: urename.h:1531
#define uregex_reset
Definition: urename.h:1521
#define uregex_replaceAllUText
Definition: urename.h:1517
#define uregex_refreshUText
Definition: urename.h:1511
#define uregex_setMatchCallback
Definition: urename.h:1524
#define uregex_groupUText
Definition: urename.h:1498
#define UTEXT_INITIALIZER
Definition: utext.h:1558
C API: 16-bit Unicode handling macros.
#define U16_FWD_1(s, i, length)
Definition: utf16.h:433
#define U16_NEXT(s, i, length, c)
Definition: utf16.h:309
#define U16_GET(s, start, i, length, c)
Definition: utf16.h:201
#define U16_TRAIL(supplementary)
Definition: utf16.h:132
#define U16_LEAD(supplementary)
Definition: utf16.h:123
@ start
Definition: preamble.c:52
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Definition: utypes.h:431
@ U_MEMORY_ALLOCATION_ERROR
Definition: utypes.h:473
@ U_BUFFER_OVERFLOW_ERROR
Definition: utypes.h:481
@ U_ILLEGAL_ARGUMENT_ERROR
Definition: utypes.h:467
@ U_STRING_NOT_TERMINATED_WARNING
Definition: utypes.h:447
@ U_INDEX_OUTOFBOUNDS_ERROR
Definition: utypes.h:474
@ U_ZERO_ERROR
Definition: utypes.h:465
@ U_REGEX_INVALID_CAPTURE_GROUP_NAME
Definition: utypes.h:650
@ U_REGEX_INVALID_STATE
Definition: utypes.h:629
#define U_FAILURE(x)
Definition: utypes.h:735
#define U_SUCCESS(x)
Definition: utypes.h:730
#define limit(x)
Definition: yuvsplittoppm.c:26