Edit File by line
/home/barbar84/public_h.../wp-conte.../plugins/sujqvwi/ShExBy/shex_roo.../usr/include
File: printf.h
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
[0] Fix | Delete
This file is part of the GNU C Library.
[1] Fix | Delete
[2] Fix | Delete
The GNU C Library is free software; you can redistribute it and/or
[3] Fix | Delete
modify it under the terms of the GNU Lesser General Public
[4] Fix | Delete
License as published by the Free Software Foundation; either
[5] Fix | Delete
version 2.1 of the License, or (at your option) any later version.
[6] Fix | Delete
[7] Fix | Delete
The GNU C Library is distributed in the hope that it will be useful,
[8] Fix | Delete
but WITHOUT ANY WARRANTY; without even the implied warranty of
[9] Fix | Delete
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
[10] Fix | Delete
Lesser General Public License for more details.
[11] Fix | Delete
[12] Fix | Delete
You should have received a copy of the GNU Lesser General Public
[13] Fix | Delete
License along with the GNU C Library; if not, see
[14] Fix | Delete
<http://www.gnu.org/licenses/>. */
[15] Fix | Delete
[16] Fix | Delete
#ifndef _PRINTF_H
[17] Fix | Delete
[18] Fix | Delete
#define _PRINTF_H 1
[19] Fix | Delete
#include <features.h>
[20] Fix | Delete
[21] Fix | Delete
__BEGIN_DECLS
[22] Fix | Delete
[23] Fix | Delete
#include <bits/types/FILE.h>
[24] Fix | Delete
[25] Fix | Delete
#define __need_size_t
[26] Fix | Delete
#define __need_wchar_t
[27] Fix | Delete
#include <stddef.h>
[28] Fix | Delete
[29] Fix | Delete
#include <stdarg.h>
[30] Fix | Delete
[31] Fix | Delete
[32] Fix | Delete
struct printf_info
[33] Fix | Delete
{
[34] Fix | Delete
int prec; /* Precision. */
[35] Fix | Delete
int width; /* Width. */
[36] Fix | Delete
wchar_t spec; /* Format letter. */
[37] Fix | Delete
unsigned int is_long_double:1;/* L flag. */
[38] Fix | Delete
unsigned int is_short:1; /* h flag. */
[39] Fix | Delete
unsigned int is_long:1; /* l flag. */
[40] Fix | Delete
unsigned int alt:1; /* # flag. */
[41] Fix | Delete
unsigned int space:1; /* Space flag. */
[42] Fix | Delete
unsigned int left:1; /* - flag. */
[43] Fix | Delete
unsigned int showsign:1; /* + flag. */
[44] Fix | Delete
unsigned int group:1; /* ' flag. */
[45] Fix | Delete
unsigned int extra:1; /* For special use. */
[46] Fix | Delete
unsigned int is_char:1; /* hh flag. */
[47] Fix | Delete
unsigned int wide:1; /* Nonzero for wide character streams. */
[48] Fix | Delete
unsigned int i18n:1; /* I flag. */
[49] Fix | Delete
unsigned int is_binary128:1; /* Floating-point argument is ABI-compatible
[50] Fix | Delete
with IEC 60559 binary128. */
[51] Fix | Delete
unsigned int __pad:3; /* Unused so far. */
[52] Fix | Delete
unsigned short int user; /* Bits for user-installed modifiers. */
[53] Fix | Delete
wchar_t pad; /* Padding character. */
[54] Fix | Delete
};
[55] Fix | Delete
[56] Fix | Delete
[57] Fix | Delete
/* Type of a printf specifier-handler function.
[58] Fix | Delete
STREAM is the FILE on which to write output.
[59] Fix | Delete
INFO gives information about the format specification.
[60] Fix | Delete
ARGS is a vector of pointers to the argument data;
[61] Fix | Delete
the number of pointers will be the number returned
[62] Fix | Delete
by the associated arginfo function for the same INFO.
[63] Fix | Delete
[64] Fix | Delete
The function should return the number of characters written,
[65] Fix | Delete
or -1 for errors. */
[66] Fix | Delete
[67] Fix | Delete
typedef int printf_function (FILE *__stream,
[68] Fix | Delete
const struct printf_info *__info,
[69] Fix | Delete
const void *const *__args);
[70] Fix | Delete
[71] Fix | Delete
/* Type of a printf specifier-arginfo function.
[72] Fix | Delete
INFO gives information about the format specification.
[73] Fix | Delete
N, ARGTYPES, *SIZE has to contain the size of the parameter for
[74] Fix | Delete
user-defined types, and return value are as for parse_printf_format
[75] Fix | Delete
except that -1 should be returned if the handler cannot handle
[76] Fix | Delete
this case. This allows to partially overwrite the functionality
[77] Fix | Delete
of existing format specifiers. */
[78] Fix | Delete
[79] Fix | Delete
typedef int printf_arginfo_size_function (const struct printf_info *__info,
[80] Fix | Delete
size_t __n, int *__argtypes,
[81] Fix | Delete
int *__size);
[82] Fix | Delete
[83] Fix | Delete
/* Old version of 'printf_arginfo_function' without a SIZE parameter. */
[84] Fix | Delete
[85] Fix | Delete
typedef int printf_arginfo_function (const struct printf_info *__info,
[86] Fix | Delete
size_t __n, int *__argtypes);
[87] Fix | Delete
[88] Fix | Delete
/* Type of a function to get a value of a user-defined from the
[89] Fix | Delete
variable argument list. */
[90] Fix | Delete
typedef void printf_va_arg_function (void *__mem, va_list *__ap);
[91] Fix | Delete
[92] Fix | Delete
[93] Fix | Delete
/* Register FUNC to be called to format SPEC specifiers; ARGINFO must be
[94] Fix | Delete
specified to determine how many arguments a SPEC conversion requires and
[95] Fix | Delete
what their types are. */
[96] Fix | Delete
[97] Fix | Delete
extern int register_printf_specifier (int __spec, printf_function __func,
[98] Fix | Delete
printf_arginfo_size_function __arginfo)
[99] Fix | Delete
__THROW;
[100] Fix | Delete
[101] Fix | Delete
[102] Fix | Delete
/* Obsolete interface similar to register_printf_specifier. It can only
[103] Fix | Delete
handle basic data types because the ARGINFO callback does not return
[104] Fix | Delete
information on the size of the user-defined type. */
[105] Fix | Delete
[106] Fix | Delete
extern int register_printf_function (int __spec, printf_function __func,
[107] Fix | Delete
printf_arginfo_function __arginfo)
[108] Fix | Delete
__THROW __attribute_deprecated__;
[109] Fix | Delete
[110] Fix | Delete
[111] Fix | Delete
/* Register a new modifier character sequence. If the call succeeds
[112] Fix | Delete
it returns a positive value representing the bit set in the USER
[113] Fix | Delete
field in 'struct printf_info'. */
[114] Fix | Delete
[115] Fix | Delete
extern int register_printf_modifier (const wchar_t *__str) __THROW __wur;
[116] Fix | Delete
[117] Fix | Delete
[118] Fix | Delete
/* Register variable argument handler for user type. The return value
[119] Fix | Delete
is to be used in ARGINFO functions to signal the use of the
[120] Fix | Delete
type. */
[121] Fix | Delete
extern int register_printf_type (printf_va_arg_function __fct) __THROW __wur;
[122] Fix | Delete
[123] Fix | Delete
[124] Fix | Delete
/* Parse FMT, and fill in N elements of ARGTYPES with the
[125] Fix | Delete
types needed for the conversions FMT specifies. Returns
[126] Fix | Delete
the number of arguments required by FMT.
[127] Fix | Delete
[128] Fix | Delete
The ARGINFO function registered with a user-defined format is passed a
[129] Fix | Delete
`struct printf_info' describing the format spec being parsed. A width
[130] Fix | Delete
or precision of INT_MIN means a `*' was used to indicate that the
[131] Fix | Delete
width/precision will come from an arg. The function should fill in the
[132] Fix | Delete
array it is passed with the types of the arguments it wants, and return
[133] Fix | Delete
the number of arguments it wants. */
[134] Fix | Delete
[135] Fix | Delete
extern size_t parse_printf_format (const char *__restrict __fmt, size_t __n,
[136] Fix | Delete
int *__restrict __argtypes) __THROW;
[137] Fix | Delete
[138] Fix | Delete
[139] Fix | Delete
/* Codes returned by `parse_printf_format' for basic types.
[140] Fix | Delete
[141] Fix | Delete
These values cover all the standard format specifications.
[142] Fix | Delete
Users can reserve new values after PA_LAST for their own types
[143] Fix | Delete
using 'register_printf_type'. */
[144] Fix | Delete
[145] Fix | Delete
enum
[146] Fix | Delete
{ /* C type: */
[147] Fix | Delete
PA_INT, /* int */
[148] Fix | Delete
PA_CHAR, /* int, cast to char */
[149] Fix | Delete
PA_WCHAR, /* wide char */
[150] Fix | Delete
PA_STRING, /* const char *, a '\0'-terminated string */
[151] Fix | Delete
PA_WSTRING, /* const wchar_t *, wide character string */
[152] Fix | Delete
PA_POINTER, /* void * */
[153] Fix | Delete
PA_FLOAT, /* float */
[154] Fix | Delete
PA_DOUBLE, /* double */
[155] Fix | Delete
PA_LAST
[156] Fix | Delete
};
[157] Fix | Delete
[158] Fix | Delete
/* Flag bits that can be set in a type returned by `parse_printf_format'. */
[159] Fix | Delete
#define PA_FLAG_MASK 0xff00
[160] Fix | Delete
#define PA_FLAG_LONG_LONG (1 << 8)
[161] Fix | Delete
#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG
[162] Fix | Delete
#define PA_FLAG_LONG (1 << 9)
[163] Fix | Delete
#define PA_FLAG_SHORT (1 << 10)
[164] Fix | Delete
#define PA_FLAG_PTR (1 << 11)
[165] Fix | Delete
[166] Fix | Delete
[167] Fix | Delete
[168] Fix | Delete
/* Function which can be registered as `printf'-handlers. */
[169] Fix | Delete
[170] Fix | Delete
/* Print floating point value using using abbreviations for the orders
[171] Fix | Delete
of magnitude used for numbers ('k' for kilo, 'm' for mega etc). If
[172] Fix | Delete
the format specifier is a uppercase character powers of 1000 are
[173] Fix | Delete
used. Otherwise powers of 1024. */
[174] Fix | Delete
extern int printf_size (FILE *__restrict __fp,
[175] Fix | Delete
const struct printf_info *__info,
[176] Fix | Delete
const void *const *__restrict __args) __THROW;
[177] Fix | Delete
[178] Fix | Delete
/* This is the appropriate argument information function for `printf_size'. */
[179] Fix | Delete
extern int printf_size_info (const struct printf_info *__restrict
[180] Fix | Delete
__info, size_t __n, int *__restrict __argtypes)
[181] Fix | Delete
__THROW;
[182] Fix | Delete
[183] Fix | Delete
#ifdef __LDBL_COMPAT
[184] Fix | Delete
# include <bits/printf-ldbl.h>
[185] Fix | Delete
#endif
[186] Fix | Delete
[187] Fix | Delete
__END_DECLS
[188] Fix | Delete
[189] Fix | Delete
#endif /* printf.h */
[190] Fix | Delete
[191] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function