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)  

bibtex-3.c
Go to the documentation of this file.
1 /*-
2 ******************************************************************************
3 ******************************************************************************
4 **
5 ** MODULE
6 **
7 ** $RCSfile: bibtex-3.c,v $
8 ** $Revision: 3.71 $
9 ** $Date: 1996/08/18 20:37:06 $
10 **
11 ** DESCRIPTION
12 **
13 ** A 32-bit implementation of BibTeX v0.99c for MS-DOS, OS/2 2.x,
14 ** Unix and VMS. This C language implementation is based on the
15 ** original WEB source but it has been enhanced to support 8-bit input
16 ** characters and a very large processing capacity.
17 **
18 ** For documentation describing how to use and build this program,
19 ** see the 00README.TXT file that accompanies this distribution.
20 **
21 ** MODULE CONTENTS
22 **
23 ** This is the third of 4 source modules for BibTeX. The source has
24 ** been split into 4 parts so that some of the more primitive editors
25 ** can cope. This code mimics the BibTeX WEB source as closely as
26 ** possible and there should be NO system dependent code in any of the
27 ** bibtex-#.c modules.
28 **
29 ** The functions defined in this module are:
30 **
31 ** pre_def_certain_strings
32 ** pre_define
33 ** print_lit
34 ** print_missing_entry
35 ** print_overflow
36 ** print_recursion_illegal
37 ** print_skipping_whatever_remains
38 ** print_stk_lit
39 ** print_wrong_stk_lit
40 ** push_lit_stk
41 ** quick_sort
42 ** sam_too_long_file_name_print
43 ** sam_wrong_file_name_print
44 ** scan1
45 ** scan1_white
46 ** scan2
47 ** scan2_white
48 ** scan3
49 ** scan_a_field_token_and_eat_whit
50 ** scan_alpha
51 ** scan_and_store_the_field_value
52 ** scan_balanced_braces
53 ** str_eq_buf
54 ** str_eq_str
55 ** str_lookup
56 ** swap
57 ** trace_and_stat_printing
58 ** trace_pr_fn_class
59 ** unknwn_function_class_confusion
60 ** unknwn_literal_confusion
61 ** upper_case
62 ** von_name_ends_and_last_name_sta
63 ** von_token_found
64 ** x_add_period
65 **
66 ** AUTHORS
67 **
68 ** Original WEB translation to C, conversion to "big" (32-bit) capacity,
69 ** addition of run-time selectable capacity and 8-bit support extensions
70 ** by:
71 **
72 ** Niel Kempson
73 ** Snowy Owl Systems Limited, Cheltenham, England
74 ** E-mail: kempson@snowyowl.co.uk
75 **
76 ** 8-bit support extensions also by:
77 **
78 ** Alejandro Aguilar-Sierra
79 ** Centro de Ciencias de la Atm\'osfera,
80 ** Universidad Nacional Aut\'onoma de M\'exico, M\'exico
81 ** E-mail: asierra@servidor.unam.mx
82 **
83 ** COPYRIGHT
84 **
85 ** This implementation copyright (c) 1991-1995 by Niel Kempson
86 ** and copyright (c) 1995 by Alejandro Aguilar-Sierra.
87 **
88 ** This program is free software; you can redistribute it and/or
89 ** modify it under the terms of the GNU General Public License as
90 ** published by the Free Software Foundation; either version 1, or
91 ** (at your option) any later version.
92 **
93 ** This program is distributed in the hope that it will be useful,
94 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
95 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
96 ** General Public License for more details.
97 **
98 ** You should have received a copy of the GNU General Public License
99 ** along with this program; if not, write to the Free Software
100 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
101 **
102 ** In other words, you are welcome to use, share and improve this
103 ** program. You are forbidden to forbid anyone else to use, share
104 ** and improve what you give them. Help stamp out software-hoarding!
105 **
106 ** ACKNOWLEDGEMENT
107 **
108 ** The original BibTeX was written by Oren Patashnik using Donald
109 ** Knuth's WEB system. This format produces a PASCAL program for
110 ** execution and a TeX documented version of the source code. This
111 ** program started as a (manual) translation of the WEB source into C.
112 **
113 ** CHANGE LOG
114 **
115 ** $Log: bibtex-3.c,v $
116 ** Revision 3.71 1996/08/18 20:37:06 kempson
117 ** Official release 3.71 (see HISTORY file for details).
118 **
119 ** Revision 3.70 1996/04/08 10:08:40 kempson
120 ** Final documentation & cosmetic changes for official release 3.70.
121 **
122 ** Revision 3.6 1995/10/21 22:19:33 kempson
123 ** Removed previous WEB-imposed limit on the maximum value of Hash_Prime.
124 **
125 ** Revision 3.5 1995/09/24 20:44:37 kempson
126 ** Many changes for final beta test version.
127 **
128 ** Revision 3.4 1995/04/09 22:15:40 kempson
129 ** Placed under RCS control
130 **
131 ******************************************************************************
132 ******************************************************************************
133 */
134 
135 #ifdef HAVE_CONFIG_H
136 #include <config.h>
137 #endif
138 
139 #include "sysdep.h"
140 #include "bibtex.h"
141 #include "datatype.h"
142 #include "gblprocs.h"
143 #include "gblvars.h"
144 #include "utils.h"
145 #include "version.h"
146 
147 
148 /***************************************************************************
149  * WEB section number: 336
150  * ~~~~~~~~~~~~~~~~~~~
151  * This is a procedure so that |initialize| is smaller.
152  ***************************************************************************/
153 void pre_def_certain_strings (void)
154 BEGIN
155 
156 /***************************************************************************
157  * WEB section number: 75
158  * ~~~~~~~~~~~~~~~~~~~
159  * It's time to insert some of the pre-defined strings into |str_pool|
160  * (and thus the hash table). These system-dependent strings should
161  * contain no upper-case letters, and they must all be exactly
162  * |longest_pds| characters long (even if fewer characters are actually
163  * stored). The |pre_define| routine appears shortly.
164  *
165  * Important notes: These pre-definitions must not have any glitches or
166  * the program may bomb because the |log_file| hasn't been opened yet,
167  * and |text_ilk|s should be pre-defined later, for
168  * .bst-function-execution purposes.
169  ***************************************************************************/
170  pre_define (".aux ", 4, FILE_EXT_ILK);
172  pre_define (".bbl ", 4, FILE_EXT_ILK);
174  pre_define (".blg ", 4, FILE_EXT_ILK);
176  pre_define (".bst ", 4, FILE_EXT_ILK);
178  pre_define (".bib ", 4, FILE_EXT_ILK);
180 
181 /***************************************************************************
182  * WEB section number: 79
183  * ~~~~~~~~~~~~~~~~~~~
184  * Now we pre-define the command strings; they must all be exactly
185  * |longest_pds| characters long.
186  *
187  * Important note: These pre-definitions must not have any glitches or
188  * the program may bomb because the |log_file| hasn't been opened yet.
189  ***************************************************************************/
190  pre_define ("\\citation ", 9, AUX_COMMAND_ILK);
191  ilk_info[pre_def_loc] = N_AUX_CITATION;
192  pre_define ("\\bibdata ", 8, AUX_COMMAND_ILK);
193  ilk_info[pre_def_loc] = N_AUX_BIBDATA;
194  pre_define ("\\bibstyle ", 9, AUX_COMMAND_ILK);
195  ilk_info[pre_def_loc] = N_AUX_BIBSTYLE;
196  pre_define ("\\@input ", 7, AUX_COMMAND_ILK);
197  ilk_info[pre_def_loc] = N_AUX_INPUT;
198  pre_define ("entry ", 5, BST_COMMAND_ILK);
199  ilk_info[pre_def_loc] = N_BST_ENTRY;
200  pre_define ("execute ", 7, BST_COMMAND_ILK);
201  ilk_info[pre_def_loc] = N_BST_EXECUTE;
202  pre_define ("function ", 8, BST_COMMAND_ILK);
203  ilk_info[pre_def_loc] = N_BST_FUNCTION;
204  pre_define ("integers ", 8, BST_COMMAND_ILK);
205  ilk_info[pre_def_loc] = N_BST_INTEGERS;
206  pre_define ("iterate ", 7, BST_COMMAND_ILK);
207  ilk_info[pre_def_loc] = N_BST_ITERATE;
208  pre_define ("macro ", 5, BST_COMMAND_ILK);
209  ilk_info[pre_def_loc] = N_BST_MACRO;
210  pre_define ("read ", 4, BST_COMMAND_ILK);
211  ilk_info[pre_def_loc] = N_BST_READ;
212  pre_define ("reverse ", 7, BST_COMMAND_ILK);
213  ilk_info[pre_def_loc] = N_BST_REVERSE;
214  pre_define ("sort ", 4, BST_COMMAND_ILK);
215  ilk_info[pre_def_loc] = N_BST_SORT;
216  pre_define ("strings ", 7, BST_COMMAND_ILK);
217  ilk_info[pre_def_loc] = N_BST_STRINGS;
218  pre_define ("comment ", 7, BIB_COMMAND_ILK);
219  ilk_info[pre_def_loc] = N_BIB_COMMENT;
220  pre_define ("preamble ", 8, BIB_COMMAND_ILK);
221  ilk_info[pre_def_loc] = N_BIB_PREAMBLE;
222  pre_define ("string ", 6, BIB_COMMAND_ILK);
223  ilk_info[pre_def_loc] = N_BIB_STRING;
224 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 79 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
225 
226 /***************************************************************************
227  * WEB section number: 334
228  * ~~~~~~~~~~~~~~~~~~~
229  * It's time for us to insert more pre-defined strings into |str_pool|
230  * (and thus the hash table) and to insert the |built_in| functions into
231  * the hash table. The strings corresponding to these functions should
232  * contain no upper-case letters, and they must all be exactly
233  * |longest_pds| characters long. The |build_in| routine (to appear
234  * shortly) does the work.
235  *
236  * Important note: These pre-definitions must not have any glitches or the
237  * program may bomb because the |log_file| hasn't been opened yet.
238  ***************************************************************************/
239  build_in ("= ", 1, &b_equals, N_EQUALS);
241  build_in ("< ", 1, &b_less_than, N_LESS_THAN);
242  build_in ("+ ", 1, &b_plus, N_PLUS);
243  build_in ("- ", 1, &b_minus, N_MINUS);
245  build_in (":= ", 2, &b_gets, N_GETS);
246  build_in ("add.period$ ", 11, &b_add_period, N_ADD_PERIOD);
247  build_in ("call.type$ ", 10, &b_call_type, N_CALL_TYPE);
248  build_in ("change.case$", 12, &b_change_case, N_CHANGE_CASE);
249  build_in ("chr.to.int$ ", 11, &b_chr_to_int, N_CHR_TO_INT);
250  build_in ("cite$ ", 5, &b_cite, N_CITE);
251  build_in ("duplicate$ ", 10, &b_duplicate, N_DUPLICATE);
252  build_in ("empty$ ", 6, &b_empty, N_EMPTY);
253  build_in ("format.name$", 12, &b_format_name, N_FORMAT_NAME);
254  build_in ("if$ ", 3, &b_if, N_IF);
255  build_in ("int.to.chr$ ", 11, &b_int_to_chr, N_INT_TO_CHR);
256  build_in ("int.to.str$ ", 11, &b_int_to_str, N_INT_TO_STR);
257  build_in ("missing$ ", 8, &b_missing, N_MISSING);
258  build_in ("newline$ ", 8, &b_newline, N_NEWLINE);
259  build_in ("num.names$ ", 10, &b_num_names, N_NUM_NAMES);
260  build_in ("pop$ ", 4, &b_pop, N_POP);
261  build_in ("preamble$ ", 9, &b_preamble, N_PREAMBLE);
262  build_in ("purify$ ", 7, &b_purify, N_PURIFY);
263  build_in ("quote$ ", 6, &b_quote, N_QUOTE);
264  build_in ("skip$ ", 5, &b_skip, N_SKIP);
265  build_in ("stack$ ", 6, &b_stack, N_STACK);
266  build_in ("substring$ ", 10, &b_substring, N_SUBSTRING);
267  build_in ("swap$ ", 5, &b_swap, N_SWAP);
268  build_in ("text.length$", 12, &b_text_length, N_TEXT_LENGTH);
269  build_in ("text.prefix$", 12, &b_text_prefix, N_TEXT_PREFIX);
271  build_in ("type$ ", 5, &b_type, N_TYPE);
272  build_in ("warning$ ", 8, &b_warning, N_WARNING);
273  build_in ("width$ ", 6, &b_width, N_WIDTH);
274  build_in ("while$ ", 6, &b_while, N_WHILE);
275  build_in ("width$ ", 6, &b_width, N_WIDTH);
276  build_in ("write$ ", 6, &b_write, N_WRITE);
277 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 334 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
278 
279 /***************************************************************************
280  * WEB section number: 339
281  * ~~~~~~~~~~~~~~~~~~~
282  * Here we pre-define a few strings used in executing the .bst file:
283  * the null string, which is sometimes pushed onto the stack; a string
284  * used for default entry types; and some control sequences used to spot
285  * foreign characters. We also initialize the |s_preamble| array to
286  * empty. These pre-defined strings must all be exactly |longest_pds|
287  * characters long.
288  *
289  * Important note: These pre-definitions must not have any glitches or
290  * the program may bomb because the |log_file| hasn't been opened yet,
291  * and |text_ilk|s should be pre-defined here, not earlier, for
292  * .bst-function-execution purposes.
293  ***************************************************************************/
294  pre_define (" ", 0, TEXT_ILK);
296  fn_type[pre_def_loc] = STR_LITERAL;
297  pre_define ("default.type", 12, TEXT_ILK);
299  fn_type[pre_def_loc] = STR_LITERAL;
300  b_default = b_skip;
301  preamble_ptr = 0;
302  pre_define ("i ", 1, CONTROL_SEQ_ILK);
303  ilk_info[pre_def_loc] = N_I;
304  pre_define ("j ", 1, CONTROL_SEQ_ILK);
305  ilk_info[pre_def_loc] = N_J;
306  pre_define ("oe ", 2, CONTROL_SEQ_ILK);
307  ilk_info[pre_def_loc] = N_OE;
308  pre_define ("OE ", 2, CONTROL_SEQ_ILK);
309  ilk_info[pre_def_loc] = N_OE_UPPER;
310  pre_define ("ae ", 2, CONTROL_SEQ_ILK);
311  ilk_info[pre_def_loc] = N_AE;
312  pre_define ("AE ", 2, CONTROL_SEQ_ILK);
313  ilk_info[pre_def_loc] = N_AE_UPPER;
314  pre_define ("aa ", 2, CONTROL_SEQ_ILK);
315  ilk_info[pre_def_loc] = N_AA;
316  pre_define ("AA ", 2, CONTROL_SEQ_ILK);
317  ilk_info[pre_def_loc] = N_AA_UPPER;
318  pre_define ("o ", 1, CONTROL_SEQ_ILK);
319  ilk_info[pre_def_loc] = N_O;
320  pre_define ("O ", 1, CONTROL_SEQ_ILK);
321  ilk_info[pre_def_loc] = N_O_UPPER;
322  pre_define ("l ", 1, CONTROL_SEQ_ILK);
323  ilk_info[pre_def_loc] = N_L;
324  pre_define ("L ", 1, CONTROL_SEQ_ILK);
325  ilk_info[pre_def_loc] = N_L_UPPER;
326  pre_define ("ss ", 2, CONTROL_SEQ_ILK);
327  ilk_info[pre_def_loc] = N_SS;
328 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 339 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
329 
330 /***************************************************************************
331  * WEB section number: 340
332  * ~~~~~~~~~~~~~~~~~~~
333  * Now we pre-define any built-in |field|s, |str_entry_var|s, and
334  * |int_global_var|s; these strings must all be exactly |longest_pds|
335  * characters long. Note that although these are built-in functions, we
336  * classify them (in the |fn_type| array) otherwise.
337  *
338  * Important note: These pre-definitions must not have any glitches or
339  * the program may bomb because the |log_file| hasn't been opened yet.
340  ***************************************************************************/
341  pre_define ("crossref ", 8, BST_FN_ILK);
347  pre_define ("sort.key$ ", 9, BST_FN_ILK);
348  fn_type[pre_def_loc] = STR_ENTRY_VAR;
352  pre_define ("entry.max$ ", 10, BST_FN_ILK);
353  fn_type[pre_def_loc] = INT_GLOBAL_VAR;
355  pre_define ("global.max$ ", 11, BST_FN_ILK);
356  fn_type[pre_def_loc] = INT_GLOBAL_VAR;
358 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 340 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
359 
360 END
361 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
362 
363 
364 
365 
366 /***************************************************************************
367  * WEB section number: 77
368  * ~~~~~~~~~~~~~~~~~~~
369  * This procedure initializes a pre-defined string of length at most
370  * |longest_pds|.
371  ***************************************************************************/
372 void pre_define (PdsType_T pds, PdsLen_T len, StrIlk_T ilk)
373 BEGIN
374  PdsLen_T i;
375 
376  for (i=1; i<=len; i++)
377  BEGIN
378 
379  /*----------------------------------------------------------------------
380  * Unlike the WEB, the string in `pds' will occupy the positions
381  * pds[0] ... pds[len-1], rather than pds[1] ... pds[len].
382  *----------------------------------------------------------------------*/
383  buffer[i] = xord[(UChar_T)pds[i-1]];
384  END
385  pre_def_loc = str_lookup (buffer, 1, len, ilk, DO_INSERT);
386 END
387 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 77 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
388 
389 
390 
391 
392 /***************************************************************************
393  * WEB section number: 3
394  * ~~~~~~~~~~~~~~~~~~~
395  ***************************************************************************/
396 void print_a_newline (void)
397 BEGIN
398  if (log_file != NULL)
399  FPUTC ('\n', log_file);
400  FPUTC ('\n', TERM_OUT);
401 END
402 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
403 
404 
405 
406 
407 /***************************************************************************
408  * WEB section number: 51
409  * ~~~~~~~~~~~~~~~~~~~
410  * And here are the associated procedures. Note the |term_out| file is
411  * system dependent.
412  ***************************************************************************/
414 BEGIN
417 END
418 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
419 
420 
421 
422 
423 /***************************************************************************
424  * WEB section number: 82
425  * ~~~~~~~~~~~~~~~~~~~
426  * And here are the associated procedures. Note the |term_out| file is
427  * system dependent.
428  ***************************************************************************/
429 void print_a_token (void)
430 BEGIN
433 END
434 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 82 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
435 
436 
437 
438 
439 /***************************************************************************
440  * WEB section number: 108
441  * ~~~~~~~~~~~~~~~~~~~
442  * Print the name of the current .aux file, followed by a |newline|.
443  ***************************************************************************/
444 void print_aux_name (void)
445 BEGIN
446  PRINT_POOL_STR (CUR_AUX_STR);
447  PRINT_NEWLINE;
448 END
449 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 108 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
450 
451 
452 
453 
454 /***************************************************************************
455  * WEB section number: 95
456  * ~~~~~~~~~~~~~~~~~~~
457  * The |print_bad_input_line| procedure prints the current input line,
458  * splitting it at the character being scanned: It prints |buffer[0]|,
459  * |buffer[1]|, \dots, |buffer[buf_ptr2-1]| on one line and
460  * |SCAN_CHAR|, \dots, |buffer[last-1]| on the next (and both
461  * lines start with a colon between two |space|s). Each |white_space|
462  * character is printed as a |space|.
463  ***************************************************************************/
465 BEGIN
466  BufPointer_T bf_ptr;
467 
468  PRINT (" : ");
469  bf_ptr = 0;
470  while (bf_ptr < buf_ptr2)
471  BEGIN
472  if (lex_class[buffer[bf_ptr]] == WHITE_SPACE)
473  BEGIN
474  PRINT2 ("%c", xchr[SPACE]);
475  END
476  else
477  BEGIN
478  PRINT2 ("%c", xchr[buffer[bf_ptr]]);
479  END
480  INCR (bf_ptr);
481  END
482  PRINT_NEWLINE;
483  PRINT (" : ");
484  bf_ptr = 0;
485  while (bf_ptr < buf_ptr2)
486  BEGIN
487  PRINT2 ("%c", xchr[SPACE]);
488  INCR (bf_ptr);
489  END
490  bf_ptr = buf_ptr2;
491  while (bf_ptr < last)
492  BEGIN
493  if (lex_class[buffer[bf_ptr]] == WHITE_SPACE)
494  BEGIN
495  PRINT2 ("%c", xchr[SPACE]);
496  END
497  else
498  BEGIN
499  PRINT2 ("%c", xchr[buffer[bf_ptr]]);
500  END
501  INCR (bf_ptr);
502  END
503  PRINT_NEWLINE;
504  bf_ptr = 0;
505  while ((bf_ptr < buf_ptr2) && (lex_class[buffer[bf_ptr]] == WHITE_SPACE))
506  BEGIN
507  INCR (bf_ptr);
508  END
509  if (bf_ptr == buf_ptr2)
510  BEGIN
511  PRINT_LN ("(Error may have been on previous line)");
512  END
513  mark_error ();
514 END
515 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 95 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
516 
517 
518 
519 
520 /***************************************************************************
521  * WEB section number: 121
522  * ~~~~~~~~~~~~~~~~~~~
523  * Here's a procedure we'll need shortly. It prints the name of the
524  * current .bib file, followed by a |newline|.
525  ***************************************************************************/
526 void print_bib_name (void)
527 BEGIN
528  PRINT_POOL_STR (CUR_BIB_STR);
529  PRINT_POOL_STR (s_bib_extension);
530  PRINT_NEWLINE;
531 END
532 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 121 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
533 
534 
535 
536 
537 /***************************************************************************
538  * WEB section number: 128
539  * ~~~~~~~~~~~~~~~~~~~
540  * Print the name of the .bst file, followed by a |newline|.
541  ***************************************************************************/
542 void print_bst_name (void)
543 BEGIN
544  PRINT_POOL_STR (bst_str);
545  PRINT_POOL_STR (s_bst_extension);
546  PRINT_NEWLINE;
547 END
548 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 128 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
549 
550 
551 
552 
553 /***************************************************************************
554  * WEB section number: 45
555  * ~~~~~~~~~~~~~~~~~~~
556  * When something happens that the program thinks is impossible,
557  * call the maintainer.
558  ***************************************************************************/
559 void print_confusion (void)
560 BEGIN
561  PRINT_LN ("---this can't happen");
562  PRINT_LN ("*Please notify the BibTeX maintainer*");
563  mark_fatal ();
564 END
565 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
566 
567 
568 
569 
570 /***************************************************************************
571  * WEB section number: 158
572  * ~~~~~~~~~~~~~~~~~~~
573  * Occasionally we'll want to |print| the name of one of these function
574  * classes.
575  ***************************************************************************/
577 BEGIN
578  switch (fn_type[fn_loc])
579  BEGIN
580  case BUILT_IN:
581  PRINT ("built-in");
582  break;
583  case WIZ_DEFINED:
584  PRINT ("wizard-defined");
585  break;
586  case INT_LITERAL:
587  PRINT ("integer-literal");
588  break;
589  case STR_LITERAL:
590  PRINT ("string-literal");
591  break;
592  case FIELD:
593  PRINT ("field");
594  break;
595  case INT_ENTRY_VAR:
596  PRINT ("integer-entry-variable");
597  break;
598  case STR_ENTRY_VAR:
599  PRINT ("string-entry-variable");
600  break;
601  case INT_GLOBAL_VAR:
602  PRINT ("integer-global-variable");
603  break;
604  case STR_GLOBAL_VAR:
605  PRINT ("string-global-variable");
606  break;
607  default:
609  break;
610  END
611 END
612 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 158 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
613 
614 
615 
616 
617 /***************************************************************************
618  * WEB section number: 313
619  * ~~~~~~~~~~~~~~~~~~~
620  * This is similar to |print_stk_lit|, but here we don't give the
621  * literal's type, and here we end with a new line. This procedure
622  * should never be called after popping an empty stack.
623  ***************************************************************************/
624 void print_lit (Integer_T stk_lt, StkType_T stk_tp)
625 BEGIN
626  switch (stk_tp)
627  BEGIN
628  case STK_INT:
629  PRINT_LN2 ("%ld", (long) stk_lt);
630  break;
631  case STK_STR:
632  PRINT_POOL_STR (stk_lt);
633  PRINT_NEWLINE;
634  break;
635  case STK_FN:
636  PRINT_POOL_STR (hash_text[stk_lt]);
637  PRINT_NEWLINE;
638  break;
639  case STK_FIELD_MISSING:
640  PRINT_POOL_STR (stk_lt);
641  PRINT_NEWLINE;
642  break;
643  case STK_EMPTY:
645  break;
646  default:
648  break;
649  END
650 END
651 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 313 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
652 
653 
654 
655 
656 /**************************************************************************
657  * WEB section number: 284
658  * ~~~~~~~~~~~~~~~~~~~
659  * When a cite key on the original |cite_list| (or added to |cite_list|
660  * because of cross~referencing) didn't appear in the database, complain.
661  ***************************************************************************/
663 BEGIN
664  PRINT ("Warning--I didn't find a database entry for \"");
665  PRINT_POOL_STR (s);
666  PRINT_LN ("\"");
667  mark_warning ();
668 END
669 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 284 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
670 
671 
672 
673 /***************************************************************************
674  * WEB section number: 44
675  * ~~~~~~~~~~~~~~~~~~~
676  * When something in the program wants to be bigger or something out
677  * there wants to be smaller, it's time to call it a run. Here's the
678  * first of several macros that have associated procedures so that they
679  * produce less inline code.
680  ***************************************************************************/
681 void print_overflow (void)
682 BEGIN
683  PRINT ("Sorry---you've exceeded BibTeX's ");
684  mark_fatal ();
685 END
686 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 44 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
687 
688 
689 
690 /***************************************************************************
691  * WEB section number: 184
692  * ~~~~~~~~~~~~~~~~~~~
693  * This macro is similar to the last one but is specifically for
694  * recursion in a |wiz_defined| function, which is illegal; it helps save
695  * space.
696  ***************************************************************************/
698 BEGIN
699 
700 #ifdef TRACE
701  if (Flag_trace)
703 #endif /* TRACE */
704 
705  PRINT_LN ("Curse you, wizard, before you recurse me:");
706  PRINT ("function ");
707  PRINT_TOKEN;
708  PRINT_LN (" is illegal in its own definition");
709 
710  /*------------------------------------------------------------------------
711  * print_recursion_illegal();
712  *----------------------------------------------------------------------*/
713  skip_token_print ();
714 END
715 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 184 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
716 
717 
718 
719 /***************************************************************************
720  * WEB section number: 96
721  * ~~~~~~~~~~~~~~~~~~~
722  * This little procedure exists because it's used by at least two other
723  * procedures and thus saves some space.
724  ***************************************************************************/
726 BEGIN
727  PRINT ("I'm skipping whatever remains of this ");
728 END
729 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 96 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
730 
731 
732 
733 /***************************************************************************
734  * WEB section number: 311
735  * ~~~~~~~~~~~~~~~~~~~
736  * Occasionally we'll want to know what's on the literal stack. Here we
737  * print out a stack literal, giving its type. This procedure should
738  * never be called after popping an empty stack.
739  ***************************************************************************/
740 void print_stk_lit (Integer_T stk_lt, StkType_T stk_tp)
741 BEGIN
742  switch (stk_tp)
743  BEGIN
744  case STK_INT:
745  PRINT2 ("%ld is an integer literal", (long) stk_lt);
746  break;
747  case STK_STR:
748  PRINT ("\"");
749  PRINT_POOL_STR (stk_lt);
750  PRINT ("\" is a string literal");
751  break;
752  case STK_FN:
753  PRINT ("`");
754  PRINT_POOL_STR (hash_text[stk_lt]);
755  PRINT ("' is a function literal");
756  break;
757  case STK_FIELD_MISSING:
758  PRINT ("`");
759  PRINT_POOL_STR (stk_lt);
760  PRINT ("' is a missing field");
761  break;
762  case STK_EMPTY:
764  break;
765  default:
767  break;
768  END
769 END
770 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 311 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
771 
772 
773 
774 /***************************************************************************
775  * WEB section number: 312
776  * ~~~~~~~~~~~~~~~~~~~
777  * This procedure appropriately chastises the style designer; however, if
778  * the wrong literal came from popping an empty stack, the procedure
779  * |pop_lit_stack| will have already done the chastising (because this
780  * procedure is called only after popping the stack) so there's no need
781  * for more.
782  ***************************************************************************/
783 void print_wrong_stk_lit (Integer_T stk_lt, StkType_T stk_tp1,
784  StkType_T stk_tp2)
785 BEGIN
786  if (stk_tp1 != STK_EMPTY)
787  BEGIN
788  print_stk_lit (stk_lt, stk_tp1);
789  switch (stk_tp2)
790  BEGIN
791  case STK_INT:
792  PRINT (", not an integer,");
793  break;
794  case STK_STR:
795  PRINT (", not a string,");
796  break;
797  case STK_FN:
798  PRINT (", not a function,");
799  break;
800  case STK_FIELD_MISSING:
801  case STK_EMPTY:
803  break;
804  default:
806  break;
807  END
809  END
810 END
811 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 312 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
812 
813 
814 
815 /***************************************************************************
816  * WEB section number: 307
817  * ~~~~~~~~~~~~~~~~~~~
818  * Ok, that's it for sorting; now we'll play with the literal stack.
819  * This procedure pushes a literal onto the stack, checking for stack
820  * overflow.
821  ***************************************************************************/
822 void push_lit_stk (Integer_T push_lt, StkType_T push_type)
823 BEGIN
824 
825 #ifdef TRACE
826  LitStkLoc_T dum_ptr;
827 #endif /* TRACE */
828 
829  lit_stack[lit_stk_ptr] = push_lt;
830  lit_stk_type[lit_stk_ptr] = push_type;
831 
832 #ifdef TRACE
833  if (Flag_trace) {
834  for (dum_ptr=0; dum_ptr <= lit_stk_ptr; dum_ptr++)
835  BEGIN
836  TRACE_PR (" ");
837  END
838  TRACE_PR ("Pushing ");
839 
840  switch (lit_stk_type[lit_stk_ptr])
841  BEGIN
842  case STK_INT:
843  TRACE_PR_LN2 ("%ld", (long) lit_stack[lit_stk_ptr]);
844  break;
845  case STK_STR:
846  TRACE_PR ("\"");
847  TRACE_PR_POOL_STR (lit_stack[lit_stk_ptr]);
848  TRACE_PR_LN ("\"");
849  break;
850  case STK_FN:
851  TRACE_PR ("`");
852  TRACE_PR_POOL_STR (hash_text[lit_stack[lit_stk_ptr]]);
853  TRACE_PR_LN ("'");
854  break;
855  case STK_FIELD_MISSING:
856  TRACE_PR ("missing field `");
858  TRACE_PR_LN ("'");
859  break;
860  case STK_EMPTY:
861  TRACE_PR_LN ("a bad literal--popped from an empty stack");
862  break;
863  default:
865  break;
866  END
867  } /* end if (Flag_trace) */
868 #endif /* TRACE */
869 
870  if (lit_stk_ptr == Lit_Stk_Size)
871  BEGIN
872  BIB_XRETALLOC_NOSET ("lit_stack", lit_stack, Integer_T,
874  BIB_XRETALLOC ("lit_stk_type", lit_stk_type, StkType_T,
876  END
877  INCR (lit_stk_ptr);
878 END
879 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 307 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
880 
881 
882 /***************************************************************************
883  * WEB section number: 303
884  * ~~~~~~~~~~~~~~~~~~~
885  * These next two procedures (actually, one procedures and one function,
886  * but who's counting) are subroutines for |quick_sort|, which follows.
887  * The |swap| procedure exchanges the two elements its arguments point
888  * to.
889  ***************************************************************************/
890 void quick_sort (CiteNumber_T left_end, CiteNumber_T right_end)
891 BEGIN
893  right;
894  CiteNumber_T insert_ptr;
897 
898 #ifdef TRACE
899  if (Flag_trace)
900  TRACE_PR_LN3 ("Sorting %ld through %ld", (long) left_end,
901  (long) right_end);
902 #endif /* TRACE */
903 
904  if ((right_end - left_end) < SHORT_LIST)
905  BEGIN
906 
907 /***************************************************************************
908  * WEB section number: 304
909  * ~~~~~~~~~~~~~~~~~~~
910  * This code sorts the entries between |left_end| and |right_end| when
911  * the difference is less than |short_list|. Each iteration of the outer
912  * loop inserts the element indicated by |insert_ptr| into its proper
913  * place among the (sorted) elements from |left_end| through
914  * |insert_ptr-1|.
915  ***************************************************************************/
916  for (insert_ptr=(left_end+1); insert_ptr<=right_end; insert_ptr++)
917  BEGIN
918  for (right=insert_ptr; right >= (left_end+1); right--)
919  BEGIN
921  BEGIN
922  goto Next_Insert_Label;
923  END
924  swap (right - 1, right);
925  END
926 Next_Insert_Label: DO_NOTHING;
927  END
928 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 304 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
929 
930  END
931  else
932  BEGIN
933 
934 /***************************************************************************
935  * WEB section number: 305
936  * ~~~~~~~~~~~~~~~~~~~
937  * Now we find the median of the three sort.key$s to which the three
938  * elements |sorted_cites[left_end+end_offset]|,
939  * |sorted_cites[right_end]-end_offset|, and
940  * |sorted_cites[(left_end+right_end) div 2]| point (a nonzero
941  * |end_offset| avoids using as the leftmost of the three elements the
942  * one that was swapped there when the old partition element was swapped
943  * into its final spot; this turns out to avoid $n^2$ behavior when the
944  * list is nearly sorted to start with). This code determines which of
945  * the six possible permutations we're dealing with and moves the median
946  * element to |left_end|. The comments next to the |swap| actions give
947  * the known orderings of the corresponding elements of |sorted_cites|
948  * before the action.
949  ***************************************************************************/
950  left = left_end + END_OFFSET;
951  middle = (left_end + right_end) / 2;
952  right = right_end - END_OFFSET;
954  BEGIN
956  BEGIN
957  swap (left_end, middle);
958  END
960  BEGIN
961  swap (left_end, right);
962  END
963  else
964  BEGIN
965  swap (left_end, left);
966  END
967  END
969  BEGIN
970  swap (left_end, middle);
971  END
973  BEGIN
974  swap (left_end, right);
975  END
976  else
977  BEGIN
978  swap (left_end, left);
979  END
980 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 305 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
981 
982 /***************************************************************************
983  * WEB section number: 306
984  * ~~~~~~~~~~~~~~~~~~~
985  * This module uses the median-of-three computed above to partition the
986  * elements into those less than and those greater than the median.
987  * Equal sort.key$s are sorted by order of occurrence (in
988  * |cite_list|).
989  ***************************************************************************/
990  partition = SORTED_CITES[left_end];
991  left = left_end + 1;
992  right = right_end;
993  do
994  BEGIN
996  BEGIN
997  INCR (left);
998  END
1000  BEGIN
1001  DECR (right);
1002  END
1003  if (left < right)
1004  BEGIN
1005  swap (left, right);
1006  INCR (left);
1007  DECR (right);
1008  END
1009  END while ( ! (left == (right + 1)));
1010  swap (left_end, right);
1011  quick_sort (left_end, right - 1);
1012  quick_sort (left, right_end);
1013  END
1014 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 306 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1015 
1016 END
1017 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 303 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1018 
1019 
1020 
1021 
1022 /***************************************************************************
1023  * WEB section number: 98
1024  * ~~~~~~~~~~~~~~~~~~~
1025  * I mean, this is truly disgraceful. A user has to type something in to
1026  * the terminal just once during the entire run. And it's not some
1027  * complicated string where you have to get every last punctuation mark
1028  * just right, and it's not some fancy list where you get nervous because
1029  * if you forget one item you have to type the whole thing again; it's
1030  * just a simple, ordinary, file name. Now you'd think a five-year-old
1031  * could do it; you'd think it's so simple a user should be able to do it
1032  * in his sleep. But noooooooooo. He had to sit there droning on and on
1033  * about who knows what until he exceeded the bounds of common sense, and
1034  * he probably didn't even realize it. Just pitiful. What's this world
1035  * coming to? We should probably just delete all his files and be done
1036  * with him. Note: The |TERM_OUT| file is system dependent.
1037  *
1038  * NOTE: because C arrays start at index 0, not 1, the subscripts of array
1039  * |name_of_file| are generally 1 less than those in the WEB source.
1040  ***************************************************************************/
1041 void sam_too_long_file_name_print (void)
1042 BEGIN
1043  FPRINTF (TERM_OUT, "File name `");
1044  name_ptr = 0;
1045  while (name_ptr < aux_name_length)
1046  BEGIN
1048  INCR (name_ptr);
1049  END
1050  FPRINTF (TERM_OUT, "' is too long\n");
1051 END
1052 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 98 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1053 
1054 
1055 
1056 /***************************************************************************
1057  * WEB section number: 99
1058  * ~~~~~~~~~~~~~~~~~~~
1059  * We've abused the user enough for one section; suffice it to
1060  * say here that most of what we said last module still applies.
1061  * Note: The |TERM_OUT| file is system dependent.
1062  *
1063  * NOTE: because C arrays start at index 0, not 1, the subscripts of array
1064  * |name_of_file| are generally 1 less than those in the WEB source.
1065  ***************************************************************************/
1066 void sam_wrong_file_name_print (void)
1067 BEGIN
1068  FPRINTF (TERM_OUT, "I couldn't open file name `");
1069  name_ptr = 0;
1070  while (name_ptr < name_length)
1071  BEGIN
1073  INCR (name_ptr);
1074  END
1075  FPRINTF (TERM_OUT, "'\n");
1076 END
1077 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 99 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1078 
1079 
1080 
1081 /***************************************************************************
1082  * WEB section number: 83
1083  * ~~~~~~~~~~~~~~~~~~~
1084  * This function scans the |buffer| for the next token, starting at the
1085  * global variable |buf_ptr2| and ending just before either the single
1086  * specified stop-character or the end of the current line, whichever
1087  * comes first, respectively returning |true| or |false|; afterward,
1088  * |scan_char| is the first character following this token.
1089  ***************************************************************************/
1090 Boolean_T scan1 (ASCIICode_T char1)
1091 BEGIN
1092  Boolean_T scan1;
1093 
1094  buf_ptr1 = buf_ptr2;
1095  while ((SCAN_CHAR != char1) && (buf_ptr2 < last))
1096  BEGIN
1097  INCR (buf_ptr2);
1098  END
1099  if (buf_ptr2 < last)
1100  BEGIN
1101  scan1 = TRUE;
1102  END
1103  else
1104  BEGIN
1105  scan1 = FALSE;
1106  END
1107  return (scan1);
1108 END
1109 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 83 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1110 
1111 
1112 
1113 /***************************************************************************
1114  * WEB section number: 84
1115  * ~~~~~~~~~~~~~~~~~~~
1116  * This function is the same but stops at |white_space| characters as well.
1117  ***************************************************************************/
1119 BEGIN
1121 
1122  buf_ptr1 = buf_ptr2;
1123  while ((lex_class[SCAN_CHAR] != WHITE_SPACE)
1124  && (SCAN_CHAR != char1) && (buf_ptr2 < last))
1125  BEGIN
1126  INCR (buf_ptr2);
1127  END
1128  if (buf_ptr2 < last)
1129  BEGIN
1130  scan1_white = TRUE;
1131  END
1132  else
1133  BEGIN
1134  scan1_white = FALSE;
1135  END
1136  return (scan1_white);
1137 END
1138 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 84 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1139 
1140 
1141 
1142 
1143 /***************************************************************************
1144  * WEB section number: 85
1145  * ~~~~~~~~~~~~~~~~~~~
1146  * This function is similar to |scan1|, but stops at either of two
1147  * stop-characters as well as the end of the current line.
1148  ***************************************************************************/
1149 Boolean_T scan2 (ASCIICode_T char1, ASCIICode_T char2)
1150 BEGIN
1151  Boolean_T scan2;
1152 
1153  buf_ptr1 = buf_ptr2;
1154  while ((SCAN_CHAR != char1) && (SCAN_CHAR != char2)
1155  && (buf_ptr2 < last))
1156  BEGIN
1157  INCR (buf_ptr2);
1158  END
1159  if (buf_ptr2 < last)
1160  BEGIN
1161  scan2 = TRUE;
1162  END
1163  else
1164  BEGIN
1165  scan2 = FALSE;
1166  END
1167  return (scan2);
1168 END
1169 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 85 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1170 
1171 
1172 
1173 /***************************************************************************
1174  * WEB section number: 86
1175  * ~~~~~~~~~~~~~~~~~~~
1176  * This function is the same but stops at |white_space| characters as well.
1177  ***************************************************************************/
1179 BEGIN
1181 
1182  buf_ptr1 = buf_ptr2;
1183  while ((SCAN_CHAR != char1) && (SCAN_CHAR != char2)
1184  && (lex_class[SCAN_CHAR] != WHITE_SPACE) && (buf_ptr2 < last))
1185  BEGIN
1186  INCR (buf_ptr2);
1187  END
1188  if (buf_ptr2 < last)
1189  BEGIN
1190  scan2_white = TRUE;
1191  END
1192  else
1193  BEGIN
1194  scan2_white = FALSE;
1195  END
1196  return (scan2_white);
1197 END
1198 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 86 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1199 
1200 
1201 
1202 
1203 /***************************************************************************
1204  * WEB section number: 87
1205  * ~~~~~~~~~~~~~~~~~~~
1206  * This function is similar to |scan2|, but stops at either of three
1207  * stop-characters as well as the end of the current line.
1208  ***************************************************************************/
1209 Boolean_T scan3 (ASCIICode_T char1, ASCIICode_T char2,
1210  ASCIICode_T char3)
1211 BEGIN
1212  Boolean_T scan3;
1213 
1214  buf_ptr1 = buf_ptr2;
1215  while ((SCAN_CHAR != char1) && (SCAN_CHAR != char2)
1216  && (SCAN_CHAR != char3) && (buf_ptr2 < last))
1217  BEGIN
1218  INCR (buf_ptr2);
1219  END
1220  if (buf_ptr2 < last)
1221  BEGIN
1222  scan3 = TRUE;
1223  END
1224  else
1225  BEGIN
1226  scan3 = FALSE;
1227  END
1228  return (scan3);
1229 END
1230 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 87 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1231 
1232 
1233 
1234 
1235 /***************************************************************************
1236  * WEB section number: 250
1237  * ~~~~~~~~~~~~~~~~~~~
1238  * Each field token is either a nonnegative number, a macro name (like
1239  * `jan'), or a brace-balanced string delimited by either |double_quote|s
1240  * or braces. Thus there are four possibilities for the first character
1241  * of the field token: If it's a |left_brace| or a |double_quote|, the
1242  * token (with balanced braces, up to the matching |right_str_delim|) is
1243  * a string; if it's |numeric|, the token is a number; if it's anything
1244  * else, the token is a macro name (and should thus have been defined by
1245  * either the .bst-file's macro command or the .bib-file's
1246  * string command). This function returns |false| if there was a
1247  * serious syntax error.
1248  ***************************************************************************/
1250 BEGIN
1251  Boolean_T scan_a_field_token_And_eat_whit;
1252 
1253  scan_a_field_token_And_eat_whit = FALSE;
1254  switch (SCAN_CHAR)
1255  BEGIN
1256  case LEFT_BRACE:
1258  if ( ! scan_balanced_braces ())
1259  goto Exit_Label;
1260  break;
1261  case DOUBLE_QUOTE:
1262  right_str_delim = DOUBLE_QUOTE;
1263  if ( ! scan_balanced_braces ())
1264  goto Exit_Label;
1265  break;
1266  case '0':
1267  case '1':
1268  case '2':
1269  case '3':
1270  case '4':
1271  case '5':
1272  case '6':
1273  case '7':
1274  case '8':
1275  case '9':
1276 
1277 /***************************************************************************
1278  * WEB section number: 258
1279  * ~~~~~~~~~~~~~~~~~~~
1280  * This module scans a nonnegative number and copies it to |field_vl_str|
1281  * if it's to store the field.
1282  ***************************************************************************/
1283  if ( ! scan_nonneg_integer ())
1284  BEGIN
1285  CONFUSION ("A digit disappeared");
1286  END
1287  if (store_field)
1288  BEGIN
1289  tmp_ptr = buf_ptr1;
1290  while (tmp_ptr < buf_ptr2)
1291  BEGIN
1293  INCR (tmp_ptr);
1294  END
1295  END
1296 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1297 
1298  break;
1299  default:
1300 
1301 /***************************************************************************
1302  * WEB section number: 259
1303  * ~~~~~~~~~~~~~~~~~~~
1304  * This module scans a macro name and copies its string to |field_vl_str|
1305  * if it's to store the field, complaining if the macro is recursive or
1306  * undefined.
1307  ***************************************************************************/
1308  scan_identifier (COMMA, right_outer_delim, CONCAT_CHAR);
1309  BIB_IDENTIFIER_SCAN_CHECK ("a field part");
1310  if (store_field)
1311  BEGIN
1314  DONT_INSERT);
1315  store_token = TRUE;
1316  if (at_bib_command)
1317  BEGIN
1318  if (command_num == N_BIB_STRING)
1319  BEGIN
1321  BEGIN
1322  store_token = FALSE;
1323  MACRO_NAME_WARNING ("used in its own definition");
1324  END
1325  END
1326  END
1327  if ( ! hash_found)
1328  BEGIN
1329  store_token = FALSE;
1330  MACRO_NAME_WARNING ("undefined");
1331  END
1332  if (store_token)
1333  BEGIN
1334 
1335 /***************************************************************************
1336  * WEB section number: 260
1337  * ~~~~~~~~~~~~~~~~~~~
1338  * The macro definition may have |white_space| that needs compressing,
1339  * because it may have been defined in the .bst file.
1340  ***************************************************************************/
1343  if (FIELD_END == 0)
1344  BEGIN
1345  if ((lex_class[str_pool[tmp_ptr]] == WHITE_SPACE)
1346  && (tmp_ptr < tmp_end_ptr))
1347  BEGIN
1348  COPY_CHAR (SPACE);
1349  INCR (tmp_ptr);
1350  while ((lex_class[str_pool[tmp_ptr]] == WHITE_SPACE)
1351  && (tmp_ptr < tmp_end_ptr))
1352  BEGIN
1353  INCR (tmp_ptr);
1354  END
1355  END
1356  END
1357  while (tmp_ptr < tmp_end_ptr)
1358  BEGIN
1359  if (lex_class[str_pool[tmp_ptr]] != WHITE_SPACE)
1360  BEGIN
1362  END
1363  else if (FIELD_VL_STR[FIELD_END - 1] != SPACE)
1364  BEGIN
1365  COPY_CHAR (SPACE);
1366  END
1367  INCR (tmp_ptr);
1368  END
1369  END
1370 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 260 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1371 
1372  END
1373 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 259 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1374 
1375  break;
1376  END
1378  scan_a_field_token_And_eat_whit = TRUE;
1380  return (scan_a_field_token_And_eat_whit);
1381 END
1382 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 250 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1383 
1384 
1385 
1386 /***************************************************************************
1387  * WEB section number: 88
1388  * ~~~~~~~~~~~~~~~~~~~
1389  * This function scans for letters, stopping at the first nonletter; it
1390  * returns |true| if there is at least one letter.
1391  ***************************************************************************/
1392 Boolean_T scan_alpha (void)
1393 BEGIN
1395 
1396  buf_ptr1 = buf_ptr2;
1397  while ((lex_class[SCAN_CHAR] == ALPHA) && (buf_ptr2 < last))
1398  BEGIN
1399  INCR (buf_ptr2);
1400  END
1401  if (TOKEN_LEN == 0)
1402  BEGIN
1403  scan_alpha = FALSE;
1404  END
1405  else
1406  BEGIN
1407  scan_alpha = TRUE;
1408  END
1409  return (scan_alpha);
1410 END
1411 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 88 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1412 
1413 
1414 
1415 /***************************************************************************
1416  * WEB section number: 249
1417  * ~~~~~~~~~~~~~~~~~~~
1418  * This function scans the list of field tokens that define the field
1419  * value string. If |store_field| is |true| it accumulates (indirectly)
1420  * in |field_vl_str| the concatenation of all the field tokens,
1421  * compressing nonnull |white_space| to a single |space| and, if the
1422  * field value is for a field (rather than a string definition), removing
1423  * any leading or trailing |white_space|; when it's finished it puts the
1424  * string into the hash table. It returns |false| if there was a serious
1425  * syntax error.
1426  ***************************************************************************/
1428 BEGIN
1430 
1432  FIELD_END = 0;
1434  BEGIN
1435  goto Exit_Label;
1436  END
1437  while (SCAN_CHAR == CONCAT_CHAR)
1438  BEGIN
1439  INCR (buf_ptr2);
1442  BEGIN
1443  goto Exit_Label;
1444  END
1445  END
1446  if (store_field)
1447  BEGIN
1448 
1449 /***************************************************************************
1450  * WEB section number: 261
1451  * ~~~~~~~~~~~~~~~~~~~
1452  * Now it's time to store the field value in the hash table, and store an
1453  * appropriate pointer to it (depending on whether it's for a database
1454  * entry or command). But first, if necessary, we remove a trailing
1455  * |space| and a leading |space| if these exist. (Hey, if we had some
1456  * ham we could make ham-and-eggs if we had some eggs.)
1457  ***************************************************************************/
1458  if ( ! at_bib_command)
1459  BEGIN
1460  if (FIELD_END > 0)
1461  BEGIN
1462  if (FIELD_VL_STR[FIELD_END - 1] == SPACE)
1463  BEGIN
1464  DECR (FIELD_END);
1465  END
1466  END
1467  END
1468  if (( ! at_bib_command) && (FIELD_VL_STR[0] == SPACE) && (FIELD_END > 0))
1469  BEGIN
1470  FIELD_START = 1;
1471  END
1472  else
1473  BEGIN
1474  FIELD_START = 0;
1475  END
1476  field_val_loc = str_lookup (FIELD_VL_STR, FIELD_START,
1477  FIELD_END - FIELD_START, TEXT_ILK,
1478  DO_INSERT);
1479  fn_type[field_val_loc] = STR_LITERAL;
1480 
1481 #ifdef TRACE
1482  if (Flag_trace) {
1483  TRACE_PR ("\"");
1484  TRACE_PR_POOL_STR (hash_text[field_val_loc]);
1485  TRACE_PR_LN ("\" is a field value");
1486  }
1487 #endif /* TRACE */
1488 
1489  if (at_bib_command)
1490  BEGIN
1491 
1492 /***************************************************************************
1493  * WEB section number: 262
1494  * ~~~~~~~~~~~~~~~~~~~
1495  * Here's where we store the goods when we're dealing with a command
1496  * rather than an entry.
1497  ***************************************************************************/
1498  switch (command_num)
1499  BEGIN
1500  case N_BIB_PREAMBLE:
1502  INCR (preamble_ptr);
1503  break;
1504  case N_BIB_STRING:
1506  break;
1507  default:
1508  bib_cmd_confusion ();
1509  break;
1510  END
1511 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 262 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1512 
1513  END
1514  else
1515  BEGIN
1516 
1517 /***************************************************************************
1518  * WEB section number: 263
1519  * ~~~~~~~~~~~~~~~~~~~
1520  * And here, an entry.
1521  ***************************************************************************/
1523  if (field_info[field_ptr] != MISSING)
1524  BEGIN
1525  PRINT ("Warning--I'm ignoring ");
1526  PRINT_POOL_STR (cite_list[entry_cite_ptr]);
1527  PRINT ("'s extra \"");
1528  PRINT_POOL_STR (hash_text[field_name_loc]);
1529  BIB_WARN_NEWLINE ("\" field");
1530  END
1531  else
1532  BEGIN
1535  && ( ! all_entries))
1536  BEGIN
1537 
1538 /***************************************************************************
1539  * WEB section number: 264
1540  * ~~~~~~~~~~~~~~~~~~~
1541  * If the cross-referenced entry isn't already on |cite_list| we add it
1542  * (at least temporarily); if it is already on |cite_list| we update the
1543  * cross-reference count, if necessary. Note that |all_entries| is
1544  * |false| here. The alias kludge helps make the stack space not
1545  * overflow on some machines.
1546  ***************************************************************************/
1547  tmp_ptr = FIELD_START;
1548  while (tmp_ptr < FIELD_END)
1549  BEGIN
1550  EXTRA_BUF[tmp_ptr] = FIELD_VL_STR[tmp_ptr];
1551  INCR (tmp_ptr);
1552  END
1553  lower_case (EXTRA_BUF, FIELD_START, FIELD_END - FIELD_START);
1554  lc_cite_loc = str_lookup (EXTRA_BUF, FIELD_START,
1555  FIELD_END - FIELD_START, LC_CITE_ILK,
1556  DO_INSERT);
1557  if (hash_found)
1558  BEGIN
1561  BEGIN
1563  END
1564  END
1565  else
1566  BEGIN
1567  cite_loc = str_lookup (FIELD_VL_STR, FIELD_START,
1568  FIELD_END - FIELD_START, CITE_ILK,
1569  DO_INSERT);
1570  if (hash_found)
1571  BEGIN
1573  END
1575  cite_info[ilk_info[cite_loc]] = 1;
1576  END
1577 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 264 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1578 
1579  END
1580  END
1581 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1582 
1583  END
1584 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 261 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1585 
1586  END
1590 END
1591 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 249 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1592 
1593 
1594 
1595 /***************************************************************************
1596  * WEB section number: 253
1597  * ~~~~~~~~~~~~~~~~~~~
1598  * This .bib-specific function scans a string with balanced braces,
1599  * stopping just past the matching |right_str_delim|. How much work it
1600  * does depends on whether |store_field = true|. It returns |false| if
1601  * there was a serious syntax error.
1602  ***************************************************************************/
1604 BEGIN
1606 
1608  INCR (buf_ptr2);
1609  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1610  if (FIELD_END > 1)
1611  BEGIN
1612  if (FIELD_VL_STR[FIELD_END- 1] == SPACE)
1613  BEGIN
1614  if (ex_buf[FIELD_END- 2] == SPACE)
1615  BEGIN
1616  DECR (FIELD_END);
1617  END
1618  END
1619  END
1620  bib_brace_level = 0;
1621  if (store_field)
1622  BEGIN
1623 
1624 /***************************************************************************
1625  * WEB section number: 256
1626  * ~~~~~~~~~~~~~~~~~~~
1627  * This module scans over a brace-balanced string, compressing multiple
1628  * |white_space| characters into a single |space|. It starts with
1629  * |bib_brace_level = 0| and starts at a non|white_space| character.
1630  ***************************************************************************/
1631  while (SCAN_CHAR != right_str_delim)
1632  BEGIN
1633  switch (SCAN_CHAR)
1634  BEGIN
1635  case LEFT_BRACE:
1638  INCR (buf_ptr2);
1639  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1640 
1641 /***************************************************************************
1642  * WEB section number: 257
1643  * ~~~~~~~~~~~~~~~~~~~
1644  * This module is similar to the last but starts with |bib_brace_level > 0|
1645  * (and, like the last, it starts at a non|white_space| character).
1646  ***************************************************************************/
1647  LOOP
1648  BEGIN
1649  switch (SCAN_CHAR)
1650  BEGIN
1651  case RIGHT_BRACE:
1652  DECR (bib_brace_level);
1654  INCR (buf_ptr2);
1655  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1656  if (bib_brace_level == 0)
1657  BEGIN
1658  goto Loop_Exit_Label;
1659  END
1660  break;
1661  case LEFT_BRACE:
1664  INCR (buf_ptr2);
1665  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1666  break;
1667  default:
1668  COPY_CHAR (SCAN_CHAR);
1669  INCR (buf_ptr2);
1670  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1671  break;
1672  END
1673  END
1674  Loop_Exit_Label: DO_NOTHING
1675 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 257 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1676 
1677  break;
1678  case RIGHT_BRACE:
1679  BIB_UNBALANCED_BRACES_ERR;
1680  default:
1681  COPY_CHAR (SCAN_CHAR);
1682  INCR (buf_ptr2);
1683  CHECK_FOR_AND_COMPRESS_BIB_WHIT;
1684  break;
1685  END
1686  END
1687 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 256 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1688 
1689  END
1690  else
1691  BEGIN
1692 
1693 /***************************************************************************
1694  * WEB section number: 254
1695  * ~~~~~~~~~~~~~~~~~~~
1696  * This module scans over a brace-balanced string without keeping track
1697  * of anything but the brace level. It starts with |bib_brace_level = 0|
1698  * and at a non|white_space| character.
1699  ***************************************************************************/
1700  while (SCAN_CHAR != right_str_delim)
1701  BEGIN
1702  if (SCAN_CHAR == LEFT_BRACE)
1703  BEGIN
1705  INCR (buf_ptr2);
1707  while (bib_brace_level > 0)
1708  BEGIN
1709 
1710 /***************************************************************************
1711  * WEB section number: 255
1712  * ~~~~~~~~~~~~~~~~~~~
1713  * This module does the same as above but, because |bib_brace_level > 0|, it
1714  * doesn't have to look for a |right_str_delim|.
1715  ***************************************************************************/
1716  if (SCAN_CHAR == RIGHT_BRACE)
1717  BEGIN
1718  DECR (bib_brace_level);
1719  INCR (buf_ptr2);
1721  END
1722  else if (SCAN_CHAR == LEFT_BRACE)
1723  BEGIN
1725  INCR (buf_ptr2);
1727  END
1728  else
1729  BEGIN
1730  INCR (buf_ptr2);
1731  if ( ! scan2 (RIGHT_BRACE, LEFT_BRACE))
1732  BEGIN
1734  END
1735  END
1736 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 255 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1737 
1738  END
1739  END
1740  else if (SCAN_CHAR == RIGHT_BRACE)
1741  BEGIN
1742  BIB_UNBALANCED_BRACES_ERR;
1743  END
1744  else
1745  BEGIN
1746  INCR (buf_ptr2);
1748  BEGIN
1750  END
1751  END
1752  END
1753 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 254 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1754 
1755  END
1756  INCR (buf_ptr2);
1759  return (scan_balanced_braces);
1760 END
1761 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 253 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1762 
1763 
1764 /***************************************************************************
1765  * WEB section number: 188
1766  * ~~~~~~~~~~~~~~~~~~~
1767  * This macro inserts a hash-table location (or one of the two
1768  * special markers |quote_next_fn| and |end_of_def|) into the
1769  * |singl_function| array, which will later be copied into the
1770  * |wiz_functions| array.
1771  ***************************************************************************/
1772 #define INSERT_FN_LOC(X) {\
1773  singl_function[single_ptr] = (X);\
1774  if (single_ptr == Single_Fn_Space)\
1775  {BIB_XRETALLOC ("singl_function", singl_function, HashPtr2_T,\
1776  Single_Fn_Space, Single_Fn_Space + Single_Fn_Space);}\
1777  INCR (single_ptr);}
1778 
1779 
1780 /***************************************************************************
1781  * WEB section number: 187
1782  * ~~~~~~~~~~~~~~~~~~~
1783  * This recursive function reads and stores the list of functions
1784  * (separated by |white_space| characters or ends-of-line) that define
1785  * this new function, and reads a |right_brace|.
1786  ***************************************************************************/
1787 void scan_fn_def (HashLoc_T fn_hash_loc)
1788 BEGIN
1789  typedef Integer_T FnDefLoc_T;
1790  HashPtr2_T *singl_function;
1791  FnDefLoc_T single_ptr;
1792  FnDefLoc_T copy_ptr;
1793  BufPointer_T end_of_num;
1795  Integer_T Single_Fn_Space;
1796 
1797  Single_Fn_Space = SINGLE_FN_SPACE;
1798  singl_function = (HashPtr2_T *) mymalloc ((Single_Fn_Space + 1)
1799  * (unsigned long) sizeof (HashPtr2_T), "singl_function");
1800  EAT_BST_WHITE_AND_EOF_CHECK ("function");
1801  single_ptr = 0;
1802  while (SCAN_CHAR != RIGHT_BRACE)
1803  BEGIN
1804 
1805 /***************************************************************************
1806  * WEB section number: 189
1807  * ~~~~~~~~~~~~~~~~~~~
1808  * There are five possibilities for the first character of the token
1809  * representing the next function of the definition: If it's a
1810  * |number_sign|, the token is an |int_literal|; if it's a
1811  * |double_quote|, the token is a |str_literal|; if it's a
1812  * |single_quote|, the token is a quoted function; if it's a
1813  * |left_brace|, the token isn't really a token, but rather the start of
1814  * another function definition (which will result in a recursive call to
1815  * |scan_fn_def|); if it's anything else, the token is the name of an
1816  * already-defined function. Note: To prevent the wizard from using
1817  * recursion, we have to check that neither a quoted function nor an
1818  * already-defined-function is actually the currently-being-defined
1819  * function (which is stored at |wiz_loc|).
1820  ***************************************************************************/
1821  switch (SCAN_CHAR)
1822  BEGIN
1823  case NUMBER_SIGN:
1824 
1825 /***************************************************************************
1826  * WEB section number: 190
1827  * ~~~~~~~~~~~~~~~~~~~
1828  * An |int_literal| is preceded by a |number_sign|, consists of an
1829  * integer (i.e., an optional |minus_sign| followed by one or more
1830  * |numeric| characters), and is followed either by a |white_space|
1831  * character, an end-of-line, or a |right_brace|. The array |fn_info|
1832  * contains the value of the integer for |int_literal|s.
1833  ***************************************************************************/
1834  BEGIN
1835  INCR (buf_ptr2);
1836  if ( ! scan_integer ())
1837  BEGIN
1838  SKIP_TOKEN ("Illegal integer in integer literal");
1839  END
1840 
1841 #ifdef TRACE
1842  if (Flag_trace) {
1843  TRACE_PR ("#");
1844  TRACE_PR_TOKEN;
1845  TRACE_PR_LN2 (" is an integer literal with value %ld",
1846  (long) token_value);
1847  }
1848 #endif /* TRACE */
1849 
1851  DO_INSERT);
1852  if ( ! hash_found)
1853  BEGIN
1854  fn_type[literal_loc] = INT_LITERAL;
1856  END
1857  if ((lex_class[SCAN_CHAR] != WHITE_SPACE) && (buf_ptr2 < last)
1858  && (SCAN_CHAR != RIGHT_BRACE) && (SCAN_CHAR != COMMENT))
1859  BEGIN
1860  SKIP_TOKEN_ILLEGAL_STUFF_AFTER;
1861  END
1863  END
1864 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 190 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1865 
1866  break;
1867  case DOUBLE_QUOTE:
1868 
1869 /***************************************************************************
1870  * WEB section number: 191
1871  * ~~~~~~~~~~~~~~~~~~~
1872  * A |str_literal| is preceded by a |double_quote| and consists of all
1873  * characters on this line up to the next |double_quote|. Also, there
1874  * must be either a |white_space| character, an end-of-line, a
1875  * |right_brace|, or a |comment| following (since functions in the
1876  * definition must be separated by |white_space|). The array |fn_info|
1877  * contains nothing for |str_literal|s.
1878  ***************************************************************************/
1879  BEGIN
1880  INCR (buf_ptr2);
1881  if ( ! scan1 (DOUBLE_QUOTE))
1882  BEGIN
1883  SKIP_TOKEN2 ("No `%c' to end string literal", xchr[DOUBLE_QUOTE]);
1884  END
1885 
1886 #ifdef TRACE
1887  if (Flag_trace) {
1888  TRACE_PR ("\"");
1889  TRACE_PR_TOKEN;
1890  TRACE_PR ("\"");
1891  TRACE_PR_LN (" is a string literal");
1892  }
1893 #endif /* TRACE */
1894 
1896  DO_INSERT);
1897  fn_type[literal_loc] = STR_LITERAL;
1899  if ((lex_class[SCAN_CHAR] != WHITE_SPACE) && (buf_ptr2 < last)
1900  && (SCAN_CHAR != RIGHT_BRACE) && (SCAN_CHAR != COMMENT))
1901  BEGIN
1902  SKIP_TOKEN_ILLEGAL_STUFF_AFTER;
1903  END
1905  END
1906 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 191 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1907 
1908  break;
1909  case SINGLE_QUOTE:
1910 
1911 /***************************************************************************
1912  * WEB section number: 192
1913  * ~~~~~~~~~~~~~~~~~~~
1914  * A quoted function is preceded by a |single_quote| and consists of all
1915  * characters up to the next |white_space| character, end-of-line,
1916  * |right_brace|, or |comment|.
1917  ***************************************************************************/
1918  BEGIN
1919  INCR (buf_ptr2);
1921  BEGIN
1922  DO_NOTHING;
1923  END
1924 
1925 #ifdef TRACE
1926  if (Flag_trace) {
1927  TRACE_PR ("'");
1928  TRACE_PR_TOKEN;
1929  TRACE_PR (" is a quoted function ");
1930  }
1931 #endif /* TRACE */
1932 
1935  DONT_INSERT);
1936  if ( ! hash_found)
1937  BEGIN
1939  END
1940  else
1941 
1942 /***************************************************************************
1943  * WEB section number: 193
1944  * ~~~~~~~~~~~~~~~~~~~
1945  * Here we check that this quoted function is a legal one---the function
1946  * name must already exist, but it mustn't be the currently-being-defined
1947  * function (which is stored at |wiz_loc|).
1948  ***************************************************************************/
1949  BEGIN
1950  if (fn_loc == wiz_loc)
1951  BEGIN
1952  SKIP_RECURSIVE_TOKEN;
1953  END
1954  else
1955  BEGIN
1956 
1957 #ifdef TRACE
1958  if (Flag_trace) {
1959  TRACE_PR ("of type ");
1962  }
1963 #endif /* TRACE */
1964 
1967  END
1968  END
1969 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 193 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1970 
1971  END
1972 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 192 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
1973 
1974  break;
1976 
1977 /***************************************************************************
1978  * WEB section number: 194
1979  * ~~~~~~~~~~~~~~~~~~~
1980  * This module marks the implicit function as being quoted, generates a
1981  * name, and stores it in the hash table. This name is strictly internal
1982  * to this program, starts with a |single_quote| (since that will make
1983  * this function name unique), and ends with the variable |impl_fn_num|
1984  * converted to ASCII. The alias kludge helps make the stack space not
1985  * overflow on some machines.
1986  ***************************************************************************/
1987  BEGIN
1988  EX_BUF2[0] = SINGLE_QUOTE;
1989  int_to_ASCII (impl_fn_num, EX_BUF2, 1, &end_of_num);
1991  DO_INSERT);
1993  BEGIN
1994  CONFUSION ("Already encountered implicit function");
1995  END
1996 
1997 #ifdef TRACE
1998  if (Flag_trace) {
1999  TRACE_PR_POOL_STR (hash_text[impl_fn_loc]);
2000  TRACE_PR_LN (" is an implicit function");
2001  }
2002 #endif /* TRACE */
2003 
2005  fn_type[impl_fn_loc] = WIZ_DEFINED;
2008  INCR (buf_ptr2);
2010  END
2011 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 194 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2012 
2013  break;
2014  default:
2015 
2016 /***************************************************************************
2017  * WEB section number: 199
2018  * ~~~~~~~~~~~~~~~~~~~
2019  * An already-defined function consists of all characters up to the next
2020  * |white_space| character, end-of-line, |right_brace|, or |comment|.
2021  * This function name must already exist, but it mustn't be the
2022  * currently-being-defined function (which is stored at |wiz_loc|).
2023  ***************************************************************************/
2024  BEGIN
2026  BEGIN
2028  END
2029 
2030 #ifdef TRACE
2031  if (Flag_trace) {
2032  TRACE_PR_TOKEN;
2033  TRACE_PR (" is a function ");
2034  }
2035 #endif /* TRACE */
2036 
2039  DONT_INSERT);
2040  if ( ! hash_found)
2041  BEGIN
2043  END
2044  else if (fn_loc == wiz_loc)
2045  BEGIN
2046  SKIP_RECURSIVE_TOKEN;
2047  END
2048  else
2049  BEGIN
2050 
2051 #ifdef TRACE
2052  if (Flag_trace) {
2053  TRACE_PR ("of type ");
2056  }
2057 #endif /* TRACE */
2058 
2060  END
2061  END
2062 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 199 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2063 
2064  break;
2065  END
2066 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 189 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2067 
2069  EAT_BST_WHITE_AND_EOF_CHECK ("function");
2070  END
2071 
2072 /***************************************************************************
2073  * WEB section number: 200
2074  * ~~~~~~~~~~~~~~~~~~~
2075  * Now we add the |end_of_def| special marker, make sure this function will
2076  * fit into |wiz_functions|, and put it there.
2077  ***************************************************************************/
2078  BEGIN
2080  while ((single_ptr + wiz_def_ptr) > Wiz_Fn_Space)
2081  BEGIN
2082  BIB_XRETALLOC ("wiz_functions", wiz_functions, HashPtr2_T,
2084  END
2085  FN_INFO[fn_hash_loc] = wiz_def_ptr;
2086  copy_ptr = 0;
2087  while (copy_ptr < single_ptr)
2088  BEGIN
2089  wiz_functions[wiz_def_ptr] = singl_function[copy_ptr];
2090  INCR (copy_ptr);
2091  INCR (wiz_def_ptr);
2092  END
2093  END
2094 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 200 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2095 
2096  INCR (buf_ptr2);
2097 Exit_Label: free (singl_function);
2098 END
2099 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 187 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2100 
2101 
2102 
2103 
2104 /***************************************************************************
2105  * WEB section number: 90
2106  * ~~~~~~~~~~~~~~~~~~~
2107  * This procedure scans for an identifier, stopping at the first
2108  * |illegal_id_char|, or stopping at the first character if it's
2109  * |numeric|. It sets the global variable |scan_result| to |id_null| if
2110  * the identifier is null, else to |white_adjacent| if it ended at a
2111  * |white_space| character or an end-of-line, else to
2112  * |specified_char_adjacent| if it ended at one of |char1| or |char2| or
2113  * |char3|, else to |other_char_adjacent| if it ended at a nonspecified,
2114  * non|white_space| |illegal_id_char|. By convention, when some calling
2115  * code really wants just one or two ``specified'' characters, it merely
2116  * repeats one of the characters.
2117  ***************************************************************************/
2119  ASCIICode_T char3)
2120 BEGIN
2121  buf_ptr1 = buf_ptr2;
2122  if (lex_class[SCAN_CHAR] != NUMERIC)
2123  BEGIN
2124  while ((id_class[SCAN_CHAR] == LEGAL_ID_CHAR) && (buf_ptr2 < last))
2125  BEGIN
2126  INCR (buf_ptr2);
2127  END
2128  END
2129  if (TOKEN_LEN == 0)
2130  BEGIN
2131  scan_result = ID_NULL;
2132  END
2133  else if ((lex_class[SCAN_CHAR] == WHITE_SPACE) || (buf_ptr2 == last))
2134  BEGIN
2136  END
2137  else if ((SCAN_CHAR == char1) || (SCAN_CHAR == char2)
2138  || (SCAN_CHAR == char3))
2139  BEGIN
2141  END
2142  else
2143  BEGIN
2145  END
2146 END
2147 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 90 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2148 
2149 
2150 
2151 
2152 /***************************************************************************
2153  * WEB section number: 93
2154  * ~~~~~~~~~~~~~~~~~~~
2155  * This procedure scans for an integer, stopping at the first nondigit;
2156  * it sets the value of |token_value| accordingly. It returns |true| if
2157  * the token was a legal integer (i.e., consisted of an optional
2158  * |minus_sign| followed by one or more digits).
2159  ***************************************************************************/
2160 Boolean_T scan_integer (void)
2161 BEGIN
2162  Integer8_T sign_length;
2164 
2165  buf_ptr1 = buf_ptr2;
2166  if (SCAN_CHAR == MINUS_SIGN)
2167  BEGIN
2168  sign_length = 1;
2169  INCR (buf_ptr2);
2170  END
2171  else
2172  BEGIN
2173  sign_length = 0;
2174  END
2175  token_value = 0;
2176  while ((lex_class[SCAN_CHAR] == NUMERIC) && (buf_ptr2 < last))
2177  BEGIN
2178  token_value = (token_value * 10) + CHAR_VALUE;
2179  INCR (buf_ptr2);
2180  END
2181  if (NEGATIVE)
2182  BEGIN
2184  END
2185  if (TOKEN_LEN == sign_length)
2186  BEGIN
2187  scan_integer = FALSE;
2188  END
2189  else
2190  BEGIN
2191  scan_integer = TRUE;
2192  END
2193  return(scan_integer);
2194 END
2195 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 93 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2196 
2197 
2198 
2199 
2200 /***************************************************************************
2201  * WEB section number: 92
2202  * ~~~~~~~~~~~~~~~~~~~
2203  * This function scans for a nonnegative integer, stopping at the first
2204  * nondigit; it sets the value of |token_value| accordingly. It returns
2205  * |true| if the token was a legal nonnegative integer (i.e., consisted
2206  * of one or more digits).
2207  ***************************************************************************/
2209 BEGIN
2211 
2212  buf_ptr1 = buf_ptr2;
2213  token_value = 0;
2214  while ((lex_class[SCAN_CHAR] == NUMERIC) && (buf_ptr2 < last))
2215  BEGIN
2216  token_value = (token_value * 10) + CHAR_VALUE;
2217  INCR (buf_ptr2);
2218  END
2219  if (TOKEN_LEN == 0)
2220  BEGIN
2222  END
2223  else
2224  BEGIN
2226  END
2227  return (scan_nonneg_integer);
2228 END
2229 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 92 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2230 
2231 
2232 
2233 
2234 /***************************************************************************
2235  * WEB section number: 94
2236  * ~~~~~~~~~~~~~~~~~~~
2237  * This function scans over |white_space| characters, stopping either at
2238  * the first nonwhite character or the end of the line, respectively
2239  * returning |true| or |false|.
2240  ***************************************************************************/
2242 BEGIN
2244 
2245  while ((lex_class[SCAN_CHAR] == WHITE_SPACE) && (buf_ptr2 < last))
2246  BEGIN
2247  INCR (buf_ptr2);
2248  END
2249  if (buf_ptr2 < last)
2250  BEGIN
2252  END
2253  else
2254  BEGIN
2256  END
2257  return (scan_white_space);
2258 END
2259 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 94 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2260 
2261 
2262 
2263 
2264 /***************************************************************************
2265  * WEB section number: 186
2266  * ~~~~~~~~~~~~~~~~~~~
2267  * And another.
2268  ***************************************************************************/
2270 BEGIN
2271  PRINT2 ("\"%c\" can't follow a literal", xchr[SCAN_CHAR]);
2272  skip_token_print ();
2273 END
2274 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 186 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2275 
2276 
2277 
2278 /***************************************************************************
2279  * WEB section number: 404
2280  * ~~~~~~~~~~~~~~~~~~~
2281  * When we come here |sp_ptr| is just past the |left_brace|, and when we
2282  * leave it's either at |sp_end| or just past the matching |right_brace|.
2283  ***************************************************************************/
2285 BEGIN
2286  while ((sp_brace_level > 1) && (sp_ptr < sp_end))
2287  BEGIN
2288  if (str_pool[sp_ptr] == RIGHT_BRACE)
2289  BEGIN
2290  DECR (sp_brace_level);
2291  END
2292  else if (str_pool[sp_ptr] == LEFT_BRACE)
2293  BEGIN
2294  INCR (sp_brace_level);
2295  END
2296  INCR (sp_ptr);
2297  END
2298 END
2299 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 404 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2300 
2301 
2302 
2303 
2304 /***************************************************************************
2305  * WEB section number: 183
2306  * ~~~~~~~~~~~~~~~~~~~
2307  * We're about to start scanning tokens in a function definition. When a
2308  * function token is illegal, we skip until it ends; a |white_space|
2309  * character, an end-of-line, a |right_brace|, or a |comment| marks the
2310  * end of the current token.
2311  ***************************************************************************/
2312 void skip_token_print (void)
2313 BEGIN
2314  PRINT ("-");
2315  bst_ln_num_print ();
2316  mark_error ();
2318  BEGIN
2319  DO_NOTHING;
2320  END
2321 END
2322 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 183 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2323 
2324 
2325 
2326 
2327 /***************************************************************************
2328  * WEB section number: 185
2329  * ~~~~~~~~~~~~~~~~~~~
2330  * Here's another macro for saving some space when there's a problem with
2331  * a token.
2332  ***************************************************************************/
2334 BEGIN
2335  PRINT_TOKEN;
2336  PRINT (" is an unknown function");
2337  skip_token_print ();
2338 END
2339 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 185 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2340 
2341 
2342 
2343 
2344 /***************************************************************************
2345  * WEB section number: 58
2346  * ~~~~~~~~~~~~~~~~~~~
2347  * This procedure copies file name |file_name| into the beginning of
2348  * |name_of_file|, if it will fit. It also sets the global variable
2349  * |name_length| to the appropriate value.
2350  *
2351  * NOTE: because C arrays start at index 0, not 1, the subscripts of array
2352  * |name_of_file| are generally 1 less than those in the WEB source.
2353  ***************************************************************************/
2355 BEGIN
2356  PoolPointer_T p_ptr;
2357 
2358  free (name_of_file);
2359  name_of_file = (unsigned char *) mymalloc (LENGTH (file_name) + 5, "name_of_file");
2360  name_ptr = 0;
2361  p_ptr = str_start[file_name];
2362  while (p_ptr < str_start[file_name + 1])
2363  BEGIN
2364  name_of_file[name_ptr] = CHR (str_pool[p_ptr]);
2365  INCR (name_ptr);
2366  INCR (p_ptr);
2367  END
2370 END
2371 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2372 
2373 
2374 
2375 
2376 /***************************************************************************
2377  * WEB section number: 56
2378  * ~~~~~~~~~~~~~~~~~~~
2379  * This subroutine compares string |s| with another string that appears
2380  * in the buffer |buf| between positions |bf_ptr| and |bf_ptr+len-1|; the
2381  * result is |true| if and only if the strings are equal.
2382  ***************************************************************************/
2384  BufPointer_T bf_ptr, BufPointer_T len)
2385 BEGIN
2386  BufPointer_T i;
2387  PoolPointer_T j;
2389 
2390  if (LENGTH (s) != len)
2391  BEGIN
2392  str_eq_buf = FALSE;
2393  goto Exit_Label;
2394  END
2395  i = bf_ptr;
2396  j = str_start[s];
2397  while (j < str_start[s + 1])
2398  BEGIN
2399  if (str_pool[j] != buf[i])
2400  BEGIN
2401  str_eq_buf = FALSE;
2402  goto Exit_Label;
2403  END
2404  INCR (i);
2405  INCR (j);
2406  END
2407  str_eq_buf = TRUE;
2408 Exit_Label:
2409  return (str_eq_buf);
2410 END
2411 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2412 
2413 
2414 
2415 
2416 /***************************************************************************
2417  * WEB section number: 57
2418  * ~~~~~~~~~~~~~~~~~~~
2419  * This subroutine compares two |str_pool| strings and returns true
2420  * |true| if and only if the strings are equal.
2421  ***************************************************************************/
2423 BEGIN
2425 
2426  if (LENGTH (s1) != LENGTH (s2))
2427  BEGIN
2428  str_eq_str = FALSE;
2429  goto Exit_Label;
2430  END
2431  p_ptr1 = str_start[s1];
2432  p_ptr2 = str_start[s2];
2433  while (p_ptr1 < str_start[s1 + 1])
2434  BEGIN
2435  if (str_pool[p_ptr1] != str_pool[p_ptr2])
2436  BEGIN
2437  str_eq_str = FALSE;
2438  goto Exit_Label;
2439  END
2440  INCR (p_ptr1);
2441  INCR (p_ptr2);
2442  END
2443  str_eq_str = TRUE;
2444 Exit_Label:
2445  return (str_eq_str);
2446 END
2447 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 57 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2448 
2449 
2450 
2451 
2452 /***************************************************************************
2453  * WEB section number: 68
2454  * ~~~~~~~~~~~~~~~~~~~
2455  * Here is the subroutine that searches the hash table for a
2456  * (string,~|str_ilk|) pair, where the string is of length |l>=0| and
2457  * appears in |buffer[j..(j+l-1)]|. If it finds the pair, it returns the
2458  * corresponding hash-table location and sets the global variable
2459  * |hash_found| to |true|. Otherwise it sets |hash_found| to |false|,
2460  * and if the parameter |insert_it| is |true|, it inserts the pair into
2461  * the hash table, inserts the string into |str_pool| if not previously
2462  * encountered, and returns its location. Note that two different pairs
2463  * can have the same string but different |str_ilk|s, in which case the
2464  * second pair encountered, if |insert_it| were |true|, would be inserted
2465  * into the hash table though its string wouldn't be inserted into
2466  * |str_pool| because it would already be there.
2467  ***************************************************************************/
2469  StrIlk_T ilk, Boolean_T insert_it)
2470 BEGIN
2472  long h;
2473  HashLoc_T p;
2474  BufPointer_T k;
2475  Boolean_T old_string;
2477 
2478 /***************************************************************************
2479  * WEB section number: 69
2480  * ~~~~~~~~~~~~~~~~~~~
2481  * The value of |Hash_Prime| should be roughly 85\% of |Hash_Size|, and
2482  * it should be a prime number
2483  * (it should also be less than $2^14 + 2^6 = 16320$ because of
2484  * WEB's simple-macro bound). The theory of hashing tells us to expect
2485  * fewer than two table probes, on the average, when the search is
2486  * successful.
2487  *
2488  * NOTE: the limit imposed on the value of Hash_Prime no longer applies
2489  * because we are using C #defines.
2490  ***************************************************************************/
2491  BEGIN
2492  h = 0;
2493  k = j;
2494  while (k < (j + l))
2495  BEGIN
2496  h = h + h + buf[k];
2497  while (h >= Hash_Prime)
2498  h = h - Hash_Prime;
2499  INCR (k);
2500  END
2501  END
2502 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 69 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2503 
2504  p = h + HASH_BASE;
2505  hash_found = FALSE;
2506  old_string = FALSE;
2507  str_num = 0; /* avoid uninitialized warning */
2508  LOOP
2509  BEGIN
2510 
2511 /***************************************************************************
2512  * WEB section number: 70
2513  * ~~~~~~~~~~~~~~~~~~~
2514  * Here we handle the case in which we've already encountered this
2515  * string; note that even if we have, we'll still have to insert the pair
2516  * into the hash table if |str_ilk| doesn't match.
2517  ***************************************************************************/
2518  BEGIN
2519  if (hash_text[p] > 0)
2520  BEGIN
2521  if (str_eq_buf (hash_text[p], buf, j, l))
2522  BEGIN
2523  if (hash_ilk[p] == ilk)
2524  BEGIN
2525  hash_found = TRUE;
2526  goto Str_Found_Label;
2527  END
2528  else
2529  BEGIN
2530  old_string = TRUE;
2531  str_num = hash_text[p];
2532  END
2533  END
2534  END
2535  END
2536 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 70 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2537 
2538  if (hash_next[p] == EMPTY)
2539  BEGIN
2540  if ( ! insert_it)
2541  BEGIN
2542  goto Str_Not_Found_Label;
2543  END
2544 
2545 /***************************************************************************
2546  * WEB section number: 71
2547  * ~~~~~~~~~~~~~~~~~~~
2548  * This code inserts the pair in the appropriate unused location.
2549  ***************************************************************************/
2550  BEGIN
2551  if (hash_text[p] > 0)
2552  BEGIN
2553  REPEAT
2554  BEGIN
2555  if (HASH_IS_FULL)
2556  BEGIN
2557  BIBTEX_OVERFLOW ("hash size ", Hash_Size);
2558  END
2559  DECR (hash_used);
2560  END UNTIL (hash_text[hash_used] == 0);
2561  hash_next[p] = hash_used;
2562  p = hash_used;
2563  END
2564  if (old_string)
2565  BEGIN
2566  hash_text[p] = str_num;
2567  END
2568  else
2569  BEGIN
2570  STR_ROOM (l);
2571  k = j;
2572  while (k < (j + l))
2573  BEGIN
2574  APPEND_CHAR (buf[k]);
2575  INCR (k);
2576  END
2577  hash_text[p] = make_string ();
2578  END
2579  hash_ilk[p] = ilk;
2580  END
2581 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 71 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2582 
2583  goto Str_Found_Label;
2584  END
2585  p = hash_next[p];
2586  END
2587 Str_Not_Found_Label: DO_NOTHING;
2588 Str_Found_Label: str_lookup = p;
2589  return (str_lookup);
2590 END
2591 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 68 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2592 
2593 
2594 
2595 /***************************************************************************
2596  * WEB section number: 300
2597  * ~~~~~~~~~~~~~~~~~~~
2598  * The |swap| procedure exchanges the two elements its arguments point
2599  * to.
2600  ***************************************************************************/
2601 void swap (CiteNumber_T swap1, CiteNumber_T swap2)
2602 BEGIN
2603  CiteNumber_T innocent_bystander;
2604 
2605  innocent_bystander = SORTED_CITES[swap2];
2606  SORTED_CITES[swap2] = SORTED_CITES[swap1];
2607  SORTED_CITES[swap1] = innocent_bystander;
2608 END
2609 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 300 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2610 
2611 
2612 
2613 /***************************************************************************
2614  * WEB section number: 456
2615  * ~~~~~~~~~~~~~~~~~~~
2616  * Here we print |trace| and/or |stat| information, if desired.
2617  ***************************************************************************/
2618 void trace_and_stat_printing (void)
2619 BEGIN
2620 
2621 #ifdef TRACE
2622 
2623  if (Flag_trace) {
2624 
2625 /***************************************************************************
2626  * WEB section number: 457
2627  * ~~~~~~~~~~~~~~~~~~~
2628  * This prints information obtained from the .aux file about the
2629  * other files.
2630  ***************************************************************************/
2631  BEGIN
2632  if (num_bib_files == 1)
2633  BEGIN
2634  TRACE_PR_LN ("The 1 database file is");
2635  END
2636  else
2637  BEGIN
2638  TRACE_PR_LN2 ("The %ld database files are", (long) num_bib_files);
2639  END
2640  if (num_bib_files == 0)
2641  BEGIN
2642  TRACE_PR_LN (" undefined");
2643  END
2644  else
2645  BEGIN
2646  bib_ptr = 0;
2647  while (bib_ptr < num_bib_files)
2648  BEGIN
2649  TRACE_PR (" ");
2650  TRACE_PR_POOL_STR (CUR_BIB_STR);
2651  TRACE_PR_POOL_STR (s_bib_extension);
2653  INCR (bib_ptr);
2654  END
2655  END
2656  TRACE_PR ("The style file is ");
2657  if (bst_str == 0)
2658  BEGIN
2659  TRACE_PR_LN ("undefined");
2660  END
2661  else
2662  BEGIN
2663  TRACE_PR_POOL_STR (bst_str);
2664  TRACE_PR_POOL_STR (s_bst_extension);
2666  END
2667  END
2668 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 457 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2669 
2670 /***************************************************************************
2671  * WEB section number: 458
2672  * ~~~~~~~~~~~~~~~~~~~
2673  * In entry-sorted order, this prints an entry's |cite_list| string and,
2674  * indirectly, its entry type and entry variables.
2675  ***************************************************************************/
2676  BEGIN
2677  if (all_entries)
2678  BEGIN
2679  TRACE_PR2 ("all_marker=%ld, ", (long) all_marker);
2680  END
2681  if (read_performed)
2682  BEGIN
2683  TRACE_PR_LN2 ("old_num_cites=%ld", (long) old_num_cites);
2684  END
2685  else
2686  BEGIN
2688  END
2689  TRACE_PR2 ("The %ld", (long) num_cites);
2690  if (num_cites == 1)
2691  BEGIN
2692  TRACE_PR_LN (" entry:");
2693  END
2694  else
2695  BEGIN
2696  TRACE_PR_LN (" entries:");
2697  END
2698  if (num_cites == 0)
2699  BEGIN
2700  TRACE_PR_LN (" undefined");
2701  END
2702  else
2703  BEGIN
2704  sort_cite_ptr = 0;
2705  while (sort_cite_ptr < num_cites)
2706  BEGIN
2707  if ( ! read_completed)
2708  BEGIN
2710  END
2711  else
2712  BEGIN
2714  END
2715  TRACE_PR_POOL_STR (CUR_CITE_STR);
2716  if (read_performed)
2717 
2718 /***************************************************************************
2719  * WEB section number: 458
2720  * ~~~~~~~~~~~~~~~~~~~
2721  * This prints information gathered while reading the .bst and
2722  * .bib files.
2723  ***************************************************************************/
2724  BEGIN
2725  TRACE_PR (", entry-type ");
2726  if (type_list[cite_ptr] == UNDEFINED)
2727  BEGIN
2728  TRACE_PR ("unknown");
2729  END
2730  else if (type_list[cite_ptr] == EMPTY)
2731  BEGIN
2732  TRACE_PR ("--- no type found");
2733  END
2734  else
2735  BEGIN
2736  TRACE_PR_POOL_STR (hash_text[type_list[cite_ptr]]);
2737  END
2738  TRACE_PR_LN (", has entry strings");
2739 
2740 /***************************************************************************
2741  * WEB section number: 460
2742  * ~~~~~~~~~~~~~~~~~~~
2743  * This prints, for the current entry, the strings declared by the
2744  * entry command.
2745  ***************************************************************************/
2746  BEGIN
2747  if (num_ent_strs == 0)
2748  BEGIN
2749  TRACE_PR_LN (" undefined");
2750  END
2751  else if ( ! read_completed)
2752  BEGIN
2753  TRACE_PR_LN (" uninitialized");
2754  END
2755  else
2756  BEGIN
2758  while (str_ent_ptr < ((cite_ptr + 1) * num_ent_strs))
2759  BEGIN
2760  ent_chr_ptr = 0;
2761  TRACE_PR (" \"");
2762 
2763  while (ENTRY_STRS(str_ent_ptr, ent_chr_ptr) != END_OF_STRING)
2764  BEGIN
2765  TRACE_PR2 ("%c",
2766  xchr[ENTRY_STRS(str_ent_ptr, ent_chr_ptr)]);
2767  INCR (ent_chr_ptr);
2768  END
2769  TRACE_PR_LN ("\"");
2770  INCR (str_ent_ptr);
2771  END
2772  END
2773  END
2774 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 460 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2775 
2776  TRACE_PR (" has entry integers");
2777 
2778 /***************************************************************************
2779  * WEB section number: 461
2780  * ~~~~~~~~~~~~~~~~~~~
2781  * This prints, for the current entry, the integers declared by the
2782  * entry command.
2783  ***************************************************************************/
2784  BEGIN
2785  if (num_ent_ints == 0)
2786  BEGIN
2787  TRACE_PR (" undefined");
2788  END
2789  else if ( ! read_completed)
2790  BEGIN
2791  TRACE_PR (" uninitialized");
2792  END
2793  else
2794  BEGIN
2796  while (int_ent_ptr < ((cite_ptr + 1) * num_ent_ints))
2797  BEGIN
2798  TRACE_PR2 (" %ld", (long) entry_ints[int_ent_ptr]);
2799  INCR (int_ent_ptr);
2800  END
2801  END
2803  END
2804 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 461 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2805 
2806  TRACE_PR_LN (" and has fields");
2807 
2808 /***************************************************************************
2809  * WEB section number: 462
2810  * ~~~~~~~~~~~~~~~~~~~
2811  * This prints the fields stored for the current entry.
2812  ***************************************************************************/
2813  BEGIN
2814  if ( ! read_performed)
2815  BEGIN
2816  TRACE_PR_LN (" uninitialized");
2817  END
2818  else
2819  BEGIN
2822  no_fields = TRUE;
2823  while (field_ptr < field_end_ptr)
2824  BEGIN
2825  if (field_info[field_ptr] != MISSING)
2826  BEGIN
2827  TRACE_PR (" \"");
2828  TRACE_PR_POOL_STR (field_info[field_ptr]);
2829  TRACE_PR_LN ("\"");
2830  no_fields = FALSE;
2831  END
2832  INCR (field_ptr);
2833  END
2834  if (no_fields)
2835  BEGIN
2836  TRACE_PR_LN (" missing");
2837  END
2838  END
2839  END
2840 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 462 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2841 
2842  END
2843 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 459 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2844 
2845  else
2846  BEGIN
2848  END
2849  INCR (sort_cite_ptr);
2850  END
2851  END
2852  END
2853 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 458 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2854 
2855 /***************************************************************************
2856  * WEB section number: 463
2857  * ~~~~~~~~~~~~~~~~~~~
2858  * This gives all the |wiz_defined| functions that appeared in the
2859  * .bst file.
2860  ***************************************************************************/
2861  BEGIN
2862  TRACE_PR_LN ("The wiz-defined functions are");
2863  if (wiz_def_ptr == 0)
2864  BEGIN
2865  TRACE_PR_LN (" nonexistent");
2866  END
2867  else
2868  BEGIN
2869  wiz_fn_ptr = 0;
2870 
2871  while (wiz_fn_ptr < wiz_def_ptr)
2872  BEGIN
2874  BEGIN
2875  TRACE_PR_LN2 ("%ld--end-of-def--", (long) wiz_fn_ptr);
2876  END
2877  else if (wiz_functions[wiz_fn_ptr] == QUOTE_NEXT_FN)
2878  BEGIN
2879  TRACE_PR2 ("%ld quote_next_function ", (long) wiz_fn_ptr);
2880  END
2881  else
2882  BEGIN
2883  TRACE_PR2 ("%ld `", (long) wiz_fn_ptr);
2884  TRACE_PR_POOL_STR (hash_text[wiz_functions[wiz_fn_ptr]]);
2885  TRACE_PR_LN ("'");
2886  END
2887  INCR (wiz_fn_ptr);
2888  END
2889  END
2890  END
2891 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 463 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2892 
2893 /***************************************************************************
2894  * WEB section number: 464
2895  * ~~~~~~~~~~~~~~~~~~~
2896  * This includes all the `static' strings (that is, those that are also
2897  * in the hash table), but none of the dynamic strings (that is, those
2898  * put on the stack while executing .bst commands).
2899  ***************************************************************************/
2900  BEGIN
2901  TRACE_PR_LN ("The string pool is");
2902  str_num = 1;
2903 
2904  while (str_num < str_ptr)
2905  BEGIN
2906  TRACE_PR3 ("%4ld%6ld \"", (long) str_num, (long) str_start[str_num]);
2907  TRACE_PR_POOL_STR (str_num);
2908  TRACE_PR_LN ("\"");
2909  INCR (str_num);
2910  END
2911  END
2912  } /* end if (Flag_trace) */
2913 
2914 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 464 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2915 
2916 #endif /* TRACE */
2917 
2918 
2919 #ifdef STAT
2920 
2921 /***************************************************************************
2922  * WEB section number: 465
2923  * ~~~~~~~~~~~~~~~~~~~
2924  * These statistics can help determine how large some of the constants
2925  * should be and can tell how useful certain |built_in| functions are.
2926  * They are written to the same files as tracing information.
2927  ***************************************************************************/
2928  if (Flag_stats) {
2929  BEGIN
2930  STAT_PR2 ("You've used %ld", (long) num_cites);
2931  if (num_cites == 1)
2932  BEGIN
2933  STAT_PR_LN (" entry,");
2934  END
2935  else
2936  BEGIN
2937  STAT_PR_LN (" entries,");
2938  END
2939  STAT_PR_LN2 (" %ld wiz_defined-function locations,",
2940  (long) wiz_def_ptr);
2941  STAT_PR_LN3 (" %ld strings with %ld characters,",
2942  (long) str_ptr, (long) str_start[str_ptr]);
2943  blt_in_ptr = 0;
2944  total_ex_count = 0;
2945  while (blt_in_ptr < NUM_BLT_IN_FNS)
2946  BEGIN
2947  total_ex_count = total_ex_count + execution_count[blt_in_ptr];
2948  INCR (blt_in_ptr);
2949  END
2950  STAT_PR_LN2 ("and the built_in function-call counts, %ld in all, are:",
2951  (long) total_ex_count);
2952  blt_in_ptr = 0;
2953  while (blt_in_ptr < NUM_BLT_IN_FNS)
2954  BEGIN
2955  STAT_PR_POOL_STR (hash_text[blt_in_loc[blt_in_ptr]]);
2956  STAT_PR_LN2 (" -- %ld", (long) execution_count[blt_in_ptr]);
2957  INCR (blt_in_ptr);
2958  END
2959  END
2960  } /* end if (Flag_stats) */
2961 
2962 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 465 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2963 
2964 #endif /* STAT */
2965 END
2966 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 456 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
2967 
2968 
2969 
2970 
2971 /***************************************************************************
2972  * WEB section number: 159
2973  * ~~~~~~~~~~~~~~~~~~~
2974  * This version is for printing when in |trace| mode.
2975  ***************************************************************************/
2976 #ifdef TRACE
2978 BEGIN
2979 
2980  if (!Flag_trace)
2981  return;
2982 
2983  switch (fn_type[fn_loc])
2984  BEGIN
2985  case BUILT_IN:
2986  TRACE_PR ("built-in");
2987  break;
2988  case WIZ_DEFINED:
2989  TRACE_PR ("wizard-defined");
2990  break;
2991  case INT_LITERAL:
2992  TRACE_PR ("integer-literal");
2993  break;
2994  case STR_LITERAL:
2995  TRACE_PR ("string-literal");
2996  break;
2997  case FIELD:
2998  TRACE_PR ("field");
2999  break;
3000  case INT_ENTRY_VAR:
3001  TRACE_PR ("integer-entry-variable");
3002  break;
3003  case STR_ENTRY_VAR:
3004  TRACE_PR ("string-entry-variable");
3005  break;
3006  case INT_GLOBAL_VAR:
3007  TRACE_PR ("integer-global-variable");
3008  break;
3009  case STR_GLOBAL_VAR:
3010  TRACE_PR ("string-global-variable");
3011  break;
3012  default:
3014  break;
3015  END
3016 END
3017 #endif /* TRACE */
3018 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 159 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3019 
3020 
3021 
3022 
3023 
3024 /***************************************************************************
3025  * WEB section number: 157
3026  * ~~~~~~~~~~~~~~~~~~~
3027  * Here's another bug report.
3028  ***************************************************************************/
3030 BEGIN
3031  CONFUSION ("Unknown function class");
3032 END
3033 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 157 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3034 
3035 
3036 
3037 
3038 /***************************************************************************
3039  * WEB section number: 310
3040  * ~~~~~~~~~~~~~~~~~~~
3041  * More bug complaints, this time about bad literals.
3042  ***************************************************************************/
3043 void unknwn_literal_confusion (void)
3044 BEGIN
3045  CONFUSION ("Unknown literal type");
3046 END
3047 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 310 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3048 
3049 
3050 
3051 
3052 /***************************************************************************
3053  * WEB section number: 63
3054  * ~~~~~~~~~~~~~~~~~~~
3055  * This system-independent procedure is the same as the previous except
3056  * that it converts lower- to upper-case letters.
3057  ***************************************************************************/
3058 #ifndef UTF_8
3059 void upper_case (BufType_T buf, BufPointer_T bf_ptr,
3060  BufPointer_T len)
3061 BEGIN
3062  BufPointer_T i;
3063 
3064  if (len > 0)
3065  BEGIN
3066  for (i = bf_ptr; i <= (bf_ptr+len-1); i++)
3067  BEGIN
3068 
3069 #ifdef SUPPORT_8BIT
3070  if (IsLower (buf[i]))
3071  BEGIN
3072  buf[i] = ToUpper(buf[i]);
3073  END
3074 #else /* NOT SUPPORT_8BIT */
3075  if ((buf[i] >= 'a') && (buf[i] <= 'z'))
3076  BEGIN
3077  buf[i] = buf[i] - CASE_DIFFERENCE;
3078  END
3079 #endif /* SUPPORT_8BIT */
3080 
3081  END
3082  END
3083 END
3084 #else
3085 /*
3086 This foction "upper_case_uni" is for prcessing the character UTF-8.
3087 It's like lower_case_uni. 23/sep/2009
3088 */
3089 
3090 BufPointer_T upper_case_uni (BufType_T buf, BufPointer_T bf_ptr,
3091  BufPointer_T len)
3092 BEGIN
3093 // printf("O~ lala~~");
3094  UChar target[BUF_SIZE+1];
3095  int32_t tarcap=BUF_SIZE+1;
3096  int32_t tarlen = icu_toUChars(buf, bf_ptr, len, target, tarcap);
3097 
3098  UChar tarup[BUF_SIZE+1];
3099  int32_t tucap=BUF_SIZE+1;
3100  int32_t tulen=icu_strToUpper(tarup, tucap,target, tarlen);
3101 
3102  unsigned char dest[BUF_SIZE+1];
3103  int32_t destcap= BUF_SIZE-bf_ptr;
3104 
3105  int32_t tblen=icu_fromUChars(dest, destcap, (const UChar *) tarup, tulen);
3106 
3107  BufPointer_T i;
3108  if (tblen > 0)
3109  BEGIN
3110  if (len!=tblen)
3111  BEGIN
3112  unsigned char tmp[BUF_SIZE+1];
3113  BufPointer_T tmppr=0;
3114  for (i=bf_ptr+len;i<=(BUF_SIZE-tblen+len);i++)
3115  BEGIN
3116  tmp[tmppr]=buf[i];
3117  tmppr++;
3118  END
3119  i=bf_ptr+tblen;
3120  tmppr=0;
3121  for (tmppr=0;tmppr<=(BUF_SIZE-bf_ptr-tblen);tmppr++)
3122  BEGIN
3123  buf[i]=tmp[tmppr];
3124  i++;
3125  END
3126  END
3127  for (i = 0; i <= (tblen - 1); i++)
3128  BEGIN
3129 
3130  buf[i+bf_ptr]=dest[i];
3131  END
3132  END
3133  return tblen;
3134 END
3135 
3136 /*
3137 This fonction is for transform Unicode string to up case. 23/sep/2009
3138 */
3139 
3140 int32_t icu_strToUpper(UChar * tarup, int32_t tucap, UChar * target, int32_t tarlen)
3141 BEGIN
3142  int32_t tulen;
3143  UErrorCode err1 = U_ZERO_ERROR;
3144  if (!U_SUCCESS(err1))
3145  BEGIN
3146  printf("Error in icu_strToUpper?\n");
3147  END
3148  if (Flag_language)
3149  {
3150  tulen=u_strToUpper(tarup,tucap, target,tarlen,Str_language,&err1);
3151  }
3152  else
3153  {
3154  tulen=u_strToUpper(tarup,tucap, target,tarlen,NULL,&err1);
3155  }
3156  if (!U_SUCCESS(err1))
3157  BEGIN
3158  printf("Error in icu_strToUpper.\n");
3159 #ifdef TRACE
3160  if (Flag_trace)
3161  TRACE_PR_LN ("Error in icu_strToUpper");
3162 #endif /* TRACE */
3163  END
3164 
3165  return tulen;
3166 END
3167 #endif
3168 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 63 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3169 
3170 
3171 
3172 
3173 /***************************************************************************
3174  * WEB section number: 401
3175  * ~~~~~~~~~~~~~~~~~~~
3176  * The last name starts just past the last token, before the first
3177  * |comma| (if there is no |comma|, there is deemed to be one at the end
3178  * of the string), for which there exists a first brace-level-0 letter
3179  * (or brace-level-1 special character), and it's in lower case, unless
3180  * this last token is also the last token before the |comma|, in which
3181  * case the last name starts with this token (unless this last token is
3182  * connected by a |sep_char| other than a |tie| to the previous token, in
3183  * which case the last name starts with as many tokens earlier as are
3184  * connected by non|tie|s to this last one (except on Tuesdays
3185  * $\ldots\,$), although this module never sees such a case). Note that
3186  * if there are any tokens in either the von or last names, then the last
3187  * name has at least one, even if it starts with a lower-case letter.
3188  ***************************************************************************/
3190 BEGIN
3191  von_end = last_end - 1;
3192  while (von_end > von_start)
3193  BEGIN
3194  name_bf_ptr = name_tok[von_end - 1];
3196  if (von_token_found ())
3197  BEGIN
3198  goto Exit_Label;
3199  END
3200  DECR (von_end);
3201  END
3203 END
3204 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 401 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3205 
3206 
3207 
3208 
3209 /***************************************************************************
3210  * WEB section number: 397
3211  * ~~~~~~~~~~~~~~~~~~~
3212  * It's a von token if there exists a first brace-level-0 letter (or
3213  * brace-level-1 special character), and it's in lower case; in this case
3214  * we return |true|. The token is in |name_buf|, starting at
3215  * |name_bf_ptr| and ending just before |name_bf_xptr|.
3216  ***************************************************************************/
3218 BEGIN
3220 
3221  nm_brace_level = 0;
3223  while (name_bf_ptr < name_bf_xptr)
3224  BEGIN
3225 
3226 #ifdef SUPPORT_8BIT
3228  BEGIN
3229  goto Exit_Label;
3230  END
3231  else if IsLower(NAME_BUF[name_bf_ptr])
3232  BEGIN
3233  RETURN_VON_FOUND;
3234  END
3235 #else /* NOT SUPPORT_8BIT */
3236  if ((NAME_BUF[name_bf_ptr] >= 'A') && (NAME_BUF[name_bf_ptr] <= 'Z'))
3237  BEGIN
3238  goto Exit_Label;
3239  END
3240  else if ((NAME_BUF[name_bf_ptr] >= 'a') && (NAME_BUF[name_bf_ptr] <= 'z'))
3241  BEGIN
3242  RETURN_VON_FOUND;
3243  END
3244 #endif /* SUPPORT_8BIT */
3245 
3246  else if (NAME_BUF[name_bf_ptr] == LEFT_BRACE)
3247  BEGIN
3248  INCR (nm_brace_level);
3249  INCR (name_bf_ptr);
3250  if (((name_bf_ptr + 2) < name_bf_xptr)
3251  && (NAME_BUF[name_bf_ptr] == BACKSLASH))
3252 
3253 /***************************************************************************
3254  * WEB section number: 398
3255  * ~~~~~~~~~~~~~~~~~~~
3256  * When we come here |name_bf_ptr| is just past the |left_brace|,
3257  * but we always leave by |return|ing.
3258  ***************************************************************************/
3259  BEGIN
3260  INCR (name_bf_ptr);
3262  while ((name_bf_ptr < name_bf_xptr)
3263  && (lex_class[NAME_BUF[name_bf_ptr]] == ALPHA))
3264  BEGIN
3265  INCR (name_bf_ptr);
3266  END
3269  CONTROL_SEQ_ILK, DONT_INSERT);
3270  if (hash_found)
3271 
3272 /***************************************************************************
3273  * WEB section number: 399
3274  * ~~~~~~~~~~~~~~~~~~~
3275  * The accented or foreign character is either `\i' or `\j' or
3276  * one of the eleven alphabetic foreign characters in Table~3.2 of the
3277  * \LaTeX\ manual.
3278  ***************************************************************************/
3279  BEGIN
3280  switch (ilk_info[control_seq_loc])
3281  BEGIN
3282  case N_OE_UPPER:
3283  case N_AE_UPPER:
3284  case N_AA_UPPER:
3285  case N_O_UPPER:
3286  case N_L_UPPER:
3287  goto Exit_Label;
3288  case N_I:
3289  case N_J:
3290  case N_OE:
3291  case N_AE:
3292  case N_AA:
3293  case N_O:
3294  case N_L:
3295  case N_SS:
3296  RETURN_VON_FOUND;
3297  default:
3298  CONFUSION ("Control-sequence hash error");
3299  END
3300  END
3301 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 399 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3302 
3303  while ((name_bf_ptr < name_bf_xptr) && (nm_brace_level > 0))
3304  BEGIN
3305 
3306 #ifdef SUPPORT_8BIT
3308  BEGIN
3309  goto Exit_Label;
3310  END
3311  else if IsLower(NAME_BUF[name_bf_ptr])
3312  BEGIN
3313  RETURN_VON_FOUND;
3314  END
3315 #else /* NOT SUPPORT_8BIT */
3316  if ((NAME_BUF[name_bf_ptr] >= 'A') && (NAME_BUF[name_bf_ptr] <= 'Z'))
3317  BEGIN
3318  goto Exit_Label;
3319  END
3320  else if ((NAME_BUF[name_bf_ptr] >= 'a')
3321  && (NAME_BUF[name_bf_ptr] <= 'z'))
3322  BEGIN
3323  RETURN_VON_FOUND;
3324  END
3325 #endif /* SUPPORT_8BIT */
3326 
3327  else if (NAME_BUF[name_bf_ptr] == RIGHT_BRACE)
3328  BEGIN
3329  DECR (nm_brace_level);
3330  END
3331  else if (NAME_BUF[name_bf_ptr] == LEFT_BRACE)
3332  BEGIN
3333  INCR (nm_brace_level);
3334  END
3335  INCR (name_bf_ptr);
3336  END
3337  goto Exit_Label;
3338  END
3339 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 398 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3340 
3341  else
3342 
3343 /***************************************************************************
3344  * WEB section number: 400
3345  * ~~~~~~~~~~~~~~~~~~~
3346  * When we come here |name_bf_ptr| is just past the |left_brace|; when we
3347  * leave it's either at |name_bf_xptr| or just past the matching
3348  * |right_brace|.
3349  ***************************************************************************/
3350  BEGIN
3351  while ((nm_brace_level > 0) && (name_bf_ptr < name_bf_xptr))
3352  BEGIN
3354  BEGIN
3355  DECR (nm_brace_level);
3356  END
3357  else if (NAME_BUF[name_bf_ptr] == LEFT_BRACE)
3358  BEGIN
3359  INCR (nm_brace_level);
3360  END
3361  INCR (name_bf_ptr);
3362  END
3363  END
3364 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 400 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3365 
3366  END
3367  else
3368  BEGIN
3369  INCR (name_bf_ptr);
3370  END
3371  END
3373  return (von_token_found);
3374 END
3375 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 397 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3376 
3377 
3378 
3379 
3380 /***************************************************************************
3381  * WEB section number: 360
3382  * ~~~~~~~~~~~~~~~~~~~
3383  * The |built_in| function add.period$ pops the top (string)
3384  * literal, adds a |period| to a nonnull string if its last
3385  * non|right_brace| character isn't a |period|, |question_mark|, or
3386  * |exclamation_mark|, and pushes this resulting string back onto the
3387  * stack. If the literal isn't a string, it complains and pushes the
3388  * null string.
3389  ***************************************************************************/
3390 void x_add_period (void)
3391 BEGIN
3393  if (pop_typ1 != STK_STR)
3394  BEGIN
3396  push_lit_stk (s_null, STK_STR);
3397  END
3398  else if (LENGTH (pop_lit1) == 0)
3399  BEGIN
3400  push_lit_stk (s_null, STK_STR);
3401  END
3402  else
3403 
3404 /***************************************************************************
3405  * WEB section number: 361
3406  * ~~~~~~~~~~~~~~~~~~~
3407  * Here we scan backwards from the end of the string, skipping
3408  * non|right_brace| characters, to see if we have to add the |period|.
3409  ***************************************************************************/
3410  BEGIN
3411  sp_ptr = str_start[pop_lit1 + 1];
3413  while (sp_ptr > sp_end)
3414  BEGIN
3415  DECR (sp_ptr);
3416  if (str_pool[sp_ptr] != RIGHT_BRACE)
3417  BEGIN
3418  goto Loop_Exit_Label;
3419  END
3420  END
3421 Loop_Exit_Label:
3422  switch (str_pool[sp_ptr])
3423  BEGIN
3424  case PERIOD:
3425  case QUESTION_MARK:
3426  case EXCLAMATION_MARK:
3427  REPUSH_STRING;
3428  break;
3429  default:
3430 
3431 /***************************************************************************
3432  * WEB section number: 362
3433  * ~~~~~~~~~~~~~~~~~~~
3434  * Ok guys, we really have to do it.
3435  ***************************************************************************/
3436  BEGIN
3437  if (pop_lit1 < cmd_str_ptr)
3438  BEGIN
3439  STR_ROOM (LENGTH (pop_lit1) + 1);
3441  sp_end = str_start[pop_lit1 + 1];
3442  while (sp_ptr < sp_end)
3443  BEGIN
3444  APPEND_CHAR (str_pool[sp_ptr]);
3445  INCR (sp_ptr);
3446  END
3447  END
3448  else
3449  BEGIN
3450  pool_ptr = str_start[pop_lit1 + 1];
3451  STR_ROOM (1);
3452  END
3453  APPEND_CHAR (PERIOD);
3454  push_lit_stk (make_string (), STK_STR);
3455  break;
3456  END
3457  END
3458 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 362 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3459 
3460  END
3461 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 361 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
3462 
3463 END
3464 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 360 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
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 LOOP(name, body)
Definition: ChkTeX.h:154
END Exit_Label
Definition: bibtex-1.c:1934
p_ptr2
Definition: bibtex-1.c:178
macro_name_loc
Definition: bibtex-1.c:1864
ilk_info[macro_name_loc]
Definition: bibtex-1.c:1924
END END void hash_cite_confusion(void)
Definition: bibtex-2.c:2116
sp_end
Definition: bibtex-2.c:657
sp_brace_level
Definition: bibtex-2.c:655
sp_ptr
Definition: bibtex-2.c:656
name_of_file
Definition: bibtex-2.c:1995
END BEGIN name_length
Definition: bibtex-2.c:2032
void print_recursion_illegal(void)
Definition: bibtex-3.c:697
void print_fn_class(HashLoc_T fn_loc)
Definition: bibtex-3.c:576
fn_type[pre_def_loc]
Definition: bibtex-3.c:342
scan_fn_def(impl_fn_loc)
void print_bst_name(void)
Definition: bibtex-3.c:542
right
Definition: bibtex-3.c:952
sort_key_num
Definition: bibtex-3.c:350
void print_bad_input_line(void)
Definition: bibtex-3.c:464
FN_INFO[pre_def_loc]
Definition: bibtex-3.c:343
s_log_extension
Definition: bibtex-3.c:175
num_pre_defined_fields
Definition: bibtex-3.c:346
void print_missing_entry(StrNumber_T s)
Definition: bibtex-3.c:662
lower_case(buffer, buf_ptr1, TOKEN_LEN)
middle
Definition: bibtex-3.c:951
INSERT_FN_LOC(QUOTE_NEXT_FN)
pre_define(".aux ", 4, 7)
s_bst_extension
Definition: bibtex-3.c:177
s_bib_extension
Definition: bibtex-3.c:179
s_aux_extension
Definition: bibtex-3.c:171
void print_a_token(void)
Definition: bibtex-3.c:429
INCR(num_fields)
literal_loc
Definition: bibtex-3.c:1895
END void scan_identifier(ASCIICode_T char1, ASCIICode_T char2, ASCIICode_T char3) BEGIN buf_ptr1
void print_a_newline(void)
Definition: bibtex-3.c:396
END Next_Token_Label
Definition: bibtex-3.c:2069
build_in("= ", 1, &b_equals, 0)
void push_lit_stk(Integer_T push_lt, StkType_T push_type)
Definition: bibtex-3.c:822
case LEFT_BRACE
Definition: bibtex-3.c:1988
crossref_num
Definition: bibtex-3.c:344
default COMMENT BEGIN DO_NOTHING
Definition: bibtex-3.c:2027
impl_fn_loc
Definition: bibtex-3.c:1990
s_bbl_extension
Definition: bibtex-3.c:173
fn_loc
Definition: bibtex-3.c:2038
void trace_pr_fn_class(HashLoc_T fn_loc) BEGIN if(!Flag_trace) return
int_to_ASCII(impl_fn_num, ex_buf, 1, &end_of_num)
void print_stk_lit(Integer_T stk_lt, StkType_T stk_tp)
Definition: bibtex-3.c:740
lit_stack[lit_stk_ptr]
Definition: bibtex-4.c:677
print_aux_name()
TRACE_PR_LN3(" Cites: %6ld out of %ld",(long) num_cites,(long) Max_Cites)
TRACE_PR_NEWLINE
Definition: bibtex.c:395
PRINT("The top-level auxiliary file: ")
TRACE_PR_LN("Here's how much of BibTeX's memory you used:")
#define OTHER_CHAR_ADJACENT
Definition: bibtex.h:619
#define WIZ_FN_SPACE
Definition: bibtex.h:284
#define SCAN_CHAR
Definition: bibtex.h:600
#define N_EMPTY
Definition: bibtex.h:1319
#define EAT_BST_WHITE_AND_EOF_CHECK(X)
Definition: bibtex.h:816
#define TOKEN_LEN
Definition: bibtex.h:599
#define NAME_BUF
Definition: bibtex.h:1375
#define MACRO_ILK
Definition: bibtex.h:524
#define N_CONCATENATE
Definition: bibtex.h:1311
#define N_GETS
Definition: bibtex.h:1312
#define EXTRA_BUF
Definition: bibtex.h:1147
#define LENGTH(s)
Definition: bibtex.h:463
#define STAT_PR_LN
Definition: bibtex.h:1444
#define N_WIDTH
Definition: bibtex.h:1341
#define INTEGER_ILK
Definition: bibtex.h:512
#define TERM_OUT
Definition: bibtex.h:123
#define TEXT_ILK
Definition: bibtex.h:511
#define N_CITE
Definition: bibtex.h:1317
#define STAT_PR_LN2
Definition: bibtex.h:1445
#define HASH_BASE
Definition: bibtex.h:508
#define AUX_COMMAND_ILK
Definition: bibtex.h:513
#define N_TEXT_LENGTH
Definition: bibtex.h:1335
#define COPY_CHAR(X)
Definition: bibtex.h:1116
#define STAT_PR_LN3
Definition: bibtex.h:1446
#define SPECIFIED_CHAR_ADJACENT
Definition: bibtex.h:618
#define N_TEXT_PREFIX
Definition: bibtex.h:1336
#define STAT_PR2
Definition: bibtex.h:1441
#define BST_FN_ILK
Definition: bibtex.h:522
#define N_INT_TO_STR
Definition: bibtex.h:1323
#define N_INT_TO_CHR
Definition: bibtex.h:1322
#define HASH_IS_FULL
Definition: bibtex.h:510
#define EX_BUF2
Definition: bibtex.h:963
#define SORTED_CITES
Definition: bibtex.h:1201
#define EAT_BIB_WHITE_AND_EOF_CHECK
Definition: bibtex.h:1032
#define FILE_EXT_ILK
Definition: bibtex.h:518
#define END_OF_DEF
Definition: bibtex.h:849
#define N_LESS_THAN
Definition: bibtex.h:1308
#define N_SWAP
Definition: bibtex.h:1334
#define BIB_IDENTIFIER_SCAN_CHECK(X)
Definition: bibtex.h:1092
#define N_DUPLICATE
Definition: bibtex.h:1318
#define N_ADD_PERIOD
Definition: bibtex.h:1313
#define N_TOP_STACK
Definition: bibtex.h:1337
#define BIB_COMMAND_ILK
Definition: bibtex.h:523
#define N_EQUALS
Definition: bibtex.h:1306
#define REPUSH_STRING
Definition: bibtex.h:1282
#define N_MINUS
Definition: bibtex.h:1310
#define LC_CITE_ILK
Definition: bibtex.h:521
#define STAT_PR_POOL_STR
Definition: bibtex.h:1448
#define ID_NULL
Definition: bibtex.h:617
#define N_CHR_TO_INT
Definition: bibtex.h:1316
#define LIT_STK_SIZE
Definition: bibtex.h:288
#define CITE_ILK
Definition: bibtex.h:520
#define NUM_BLT_IN_FNS
Definition: bibtex.h:1343
#define N_SKIP
Definition: bibtex.h:1331
#define SKIP_TOKEN_UNKNOWN_FUNCTION
Definition: bibtex.h:941
#define N_WARNING
Definition: bibtex.h:1339
#define N_NUM_NAMES
Definition: bibtex.h:1326
#define N_CHANGE_CASE
Definition: bibtex.h:1315
#define END_OF_STRING
Definition: bibtex.h:984
#define N_QUOTE
Definition: bibtex.h:1330
#define N_WHILE
Definition: bibtex.h:1340
#define N_SUBSTRING
Definition: bibtex.h:1333
#define SINGLE_FN_SPACE
Definition: bibtex.h:285
#define N_CALL_TYPE
Definition: bibtex.h:1314
#define N_IF
Definition: bibtex.h:1321
#define SKIP_TOKEN2(X, Y)
Definition: bibtex.h:920
#define CONTROL_SEQ_ILK
Definition: bibtex.h:525
#define N_TYPE
Definition: bibtex.h:1338
#define N_STACK
Definition: bibtex.h:1332
#define BST_COMMAND_ILK
Definition: bibtex.h:515
#define N_NEWLINE
Definition: bibtex.h:1325
#define N_WRITE
Definition: bibtex.h:1342
#define N_POP
Definition: bibtex.h:1327
#define NEGATIVE
Definition: bibtex.h:638
#define N_PLUS
Definition: bibtex.h:1309
#define N_GREATER_THAN
Definition: bibtex.h:1307
#define N_PURIFY
Definition: bibtex.h:1329
#define N_MISSING
Definition: bibtex.h:1324
#define SKIP_TOKEN(X)
Definition: bibtex.h:916
#define N_FORMAT_NAME
Definition: bibtex.h:1320
#define QUOTE_NEXT_FN
Definition: bibtex.h:848
#define N_PREAMBLE
Definition: bibtex.h:1328
void scan1(char *s, short p, short *n)
Definition: cfuncs.c:26
#define BUF_SIZE
Definition: chkdvifont.c:81
#define SINGLE_QUOTE
Definition: choicfmt.cpp:54
Integer32_T HashLoc_T
Definition: datatype.h:160
UChar_T ASCIICode_T
Definition: datatype.h:144
Integer32_T HashPtr2_T
Definition: datatype.h:162
char Integer8_T
Definition: datatype.h:113
long Integer_T
Definition: datatype.h:135
const Char_T * PdsType_T
Definition: datatype.h:170
Integer8_T StkType_T
Definition: datatype.h:172
UChar_T PdsLen_T
Definition: datatype.h:168
Integer8_T StrIlk_T
Definition: datatype.h:175
Integer16_T CiteNumber_T
Definition: datatype.h:151
Integer16_T BufPointer_T
Definition: datatype.h:149
ASCIICode_T * BufType_T
Definition: datatype.h:150
unsigned char UChar_T
Definition: datatype.h:111
Unsigned16_T PoolPointer_T
Definition: datatype.h:171
Integer16_T LitStkLoc_T
Definition: datatype.h:167
char Boolean_T
Definition: datatype.h:110
Integer16_T StrNumber_T
Definition: datatype.h:176
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define free(a)
Definition: decNumber.cpp:310
#define BEGIN
Definition: detex.c:205
int h
Definition: dviconv.c:9
int printf()
void unknwn_function_class_confusion(void)
void mark_warning(void)
HashLoc_T str_lookup(BufType_T buf, BufPointer_T j, BufPointer_T l, StrIlk_T ilk, Boolean_T insert_it)
Boolean_T scan2_white(ASCIICode_T char1, ASCIICode_T char2)
void skip_stuff_at_sp_brace_level_gr(void)
void illegl_literal_confusion(void)
void upper_case(BufType_T buf, BufPointer_T bf_ptr, BufPointer_T len)
void add_database_cite(CiteNumber_T *newcite)
void start_name(StrNumber_T filename)
void von_name_ends_and_last_name_sta(void)
Boolean_T str_eq_str(StrNumber_T s1, StrNumber_T s2)
void sam_too_long_file_name_print(void)
void skip_illegal_stuff_after_token(void)
Boolean_T scan_alpha(void)
void print_skipping_whatever_remains(void)
void print_wrong_stk_lit(Integer_T stk_lt, StkType_T stk_tp1, StkType_T stk_tp2)
#define IsLower(c)
Definition: gblprocs.h:411
Boolean_T von_token_found(void)
void quick_sort(CiteNumber_T left_end, CiteNumber_T right_end)
Boolean_T less_than(CiteNumber_T arg1, CiteNumber_T arg2)
Boolean_T scan_a_field_token_and_eat_whit(void)
Boolean_T scan_white_space(void)
void print_lit(Integer_T stk_lt, StkType_T stk_tp)
void out_pool_str(AlphaFile_T f, StrNumber_T s)
#define IsUpper(c)
Definition: gblprocs.h:410
void x_add_period(void)
void out_token(AlphaFile_T f)
Boolean_T str_eq_buf(StrNumber_T s, BufType_T buf, BufPointer_T bf_ptr, BufPointer_T len)
Boolean_T scan3(ASCIICode_T char1, ASCIICode_T char2, ASCIICode_T char3)
void sam_wrong_file_name_print(void)
void bst_ln_num_print(void)
void mark_fatal(void)
void mark_error(void)
Boolean_T scan1_white(ASCIICode_T char1)
Boolean_T scan_nonneg_integer(void)
Boolean_T scan_balanced_braces(void)
#define ToUpper(c)
Definition: gblprocs.h:412
void pop_lit_stk(Integer_T *pop_lit, StkType_T *pop_type)
void unknwn_literal_confusion(void)
Boolean_T scan_and_store_the_field_value(void)
void trace_and_stat_printing(void)
void pre_def_certain_strings(void)
Boolean_T scan2(ASCIICode_T char1, ASCIICode_T char2)
void print_bib_name(void)
void skip_token_print(void)
void print_confusion(void)
void bib_cmd_confusion(void)
Boolean_T scan_integer(void)
void print_a_pool_str(StrNumber_T s)
void skp_token_unknown_function_prin(void)
void print_overflow(void)
void bst_ex_warn_print(void)
HashLoc_T b_purify
HashLoc_T b_concatenate
Boolean_T hash_found
ASCIICode_T * ex_buf
BufPointer_T last_end
HashLoc_T b_cite
Integer_T aux_name_length
HashLoc_T b_swap
ASCIICode_T right_str_delim
HashLoc_T b_int_to_chr
FieldLoc_T field_ptr
BufPointer_T name_bf_xptr
BibNumber_T num_bib_files
StrNumber_T bst_str
IntEntLoc_T num_ent_ints
HashLoc_T b_num_names
CiteNumber_T all_marker
ASCIICode_T xord[LAST_TEXT_CHAR+1]
HashLoc_T b_while
HashPtr2_T * wiz_functions
HashLoc_T b_gets
BufPointer_T name_bf_yptr
HashLoc_T cite_loc
Integer_T Glob_Str_Size
StkType_T * lit_stk_type
CiteNumber_T entry_cite_ptr
BufPointer_T * name_tok
IntEntLoc_T int_ent_ptr
Boolean_T read_completed
StrEntLoc_T num_ent_strs
HashLoc_T b_minus
HashLoc_T b_add_period
HashLoc_T field_val_loc
BufPointer_T buf_ptr1
StrNumber_T s_null
StrNumber_T str_ptr
Definition: stringpool.c:63
HashLoc_T b_equals
StkType_T pop_typ1
Boolean_T Flag_stats
HashLoc_T b_width
HashLoc_T b_empty
HashLoc_T b_stack
HashLoc_T b_if
ASCIICode_T right_outer_delim
HashLoc_T b_missing
HashLoc_T wiz_loc
BufPointer_T name_bf_ptr
LitStkLoc_T lit_stk_ptr
Integer_T pop_lit1
PoolPointer_T p_ptr1
Boolean_T store_token
Boolean_T store_field
Integer_T nm_brace_level
StrNumber_T s_default
HashLoc_T b_plus
BufPointer_T buf_ptr2
StrNumber_T * s_preamble
Integer_T tmp_ptr
HashLoc_T b_greater_than
BibNumber_T preamble_ptr
StrNumber_T cmd_str_ptr
HashPointer_T * hash_next
Integer_T * entry_ints
WizFnLoc_T wiz_fn_ptr
BufPointer_T von_start
HashLoc_T b_less_than
HashLoc_T b_call_type
PoolPointer_T pool_ptr
Boolean_T Flag_trace
HashLoc_T b_substring
Integer_T Hash_Size
CiteNumber_T sort_cite_ptr
HashLoc_T b_pop
HashLoc_T pre_def_loc
ASCIICode_T * str_pool
CiteNumber_T old_num_cites
HashLoc_T cur_macro_loc
HashLoc_T lc_cite_loc
HashLoc_T b_default
Integer_T tmp_end_ptr
StrNumber_T * cite_list
HashLoc_T b_chr_to_int
StrIlk_T * hash_ilk
Integer_T Hash_Prime
Integer_T ent_chr_ptr
HashLoc_T b_text_prefix
Boolean_T read_performed
HashLoc_T b_text_length
HashLoc_T b_int_to_str
HashLoc_T b_change_case
HashLoc_T b_newline
HashLoc_T b_skip
StrNumber_T * cite_info
HashLoc_T b_type
Boolean_T at_bib_command
FieldLoc_T field_end_ptr
BufPointer_T von_end
HashLoc_T b_top_stack
StrNumber_T str_num
HashLoc_T b_preamble
FieldLoc_T num_fields
Integer_T Wiz_Fn_Space
HashLoc_T b_quote
Boolean_T all_entries
HashLoc_T b_write
HashLoc_T b_duplicate
BibNumber_T bib_ptr
Boolean_T no_fields
StrEntLoc_T str_ent_ptr
HashLoc_T control_seq_loc
HashLoc_T b_format_name
Integer_T command_num
Integer_T token_value
PoolPointer_T * str_start
HashPtr2_T * type_list
WizFnLoc_T wiz_def_ptr
HashLoc_T b_warning
Integer_T Ent_Str_Size
unsigned char xchr[LAST_ASCII_CHAR+1]
LexType_T lex_class[LAST_ASCII_CHAR+1]
Integer16_T hash_used
Definition: primitive.c:59
Integer_T impl_fn_num
IDType_T id_class[LAST_ASCII_CHAR+1]
HashLoc_T field_name_loc
Integer_T Lit_Stk_Size
Integer_T bib_brace_level
StrNumber_T * hash_text
CiteNumber_T cite_ptr
Integer8_T scan_result
CiteNumber_T num_cites
#define SPACE
Definition: general.h:107
#define s
Definition: afcover.h:80
unsigned char UChar
Definition: bzip2.c:163
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p
Definition: afcover.h:72
small capitals from c petite p scientific i
Definition: afcover.h:80
#define ALPHA
Definition: gd_nnquant.c:75
signed int int32_t
Definition: stdint.h:77
#define buf
#define REPEAT
Definition: ttf.h:21
char file_name[][1024]
Definition: cwebboot.c:318
name_pointer name_ptr
Definition: cwebboot.c:356
#define dest
#define target(code, i)
Definition: lpeg.c:1165
#define EMPTY
Definition: mkind.h:374
struct KFIELD FIELD
static const UChar NUMBER_SIGN
Definition: plurrule_impl.h:60
int k
Definition: otp-parser.c:70
static int32_t last
Definition: ppagelist.c:29
static int RIGHT_BRACE(int ch)
#define mymalloc
Definition: pscolor.c:28
static IdxT partition(lua_State *L, IdxT lo, IdxT up)
Definition: ltablib.c:310
#define swap(sp)
Definition: interp.c:123
#define END
Definition: repack.c:35
lft_cell * left
Definition: routines.h:73
static void make_string(char **ppstr, int n)
Definition: scanid.c:232
#define COMMENT
Definition: scanst.h:29
Definition: utils.c:300
#define CHR(x)
Definition: sysdep.h:200
#define FPUTC
Definition: sysdep.h:196
#define UNTIL(X)
Definition: sysdep.h:218
#define FPRINTF
Definition: sysdep.h:195
int j
Definition: t4ht.c:1589
s1
Definition: t4ht.c:1059
char * s2
Definition: t4ht.c:1062
static FILE * log_file
Definition: tex4ht.c:1100
#define COMMA
Definition: ucnv_u7.cpp:865
#define BACKSLASH
Definition: ucnv_u7.cpp:94
#define u_strToUpper
Definition: urename.h:373
UErrorCode
Definition: utypes.h:431
@ U_ZERO_ERROR
Definition: utypes.h:465
#define U_SUCCESS(x)
Definition: utypes.h:730