/usr/include/wcslib-5.16/wcsprintf.h is in wcslib-dev 5.16-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | /*============================================================================
WCSLIB 5.16 - an implementation of the FITS WCS standard.
Copyright (C) 1995-2017, Mark Calabretta
This file is part of WCSLIB.
WCSLIB is free software: you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
more details.
You should have received a copy of the GNU Lesser General Public License
along with WCSLIB. If not, see http://www.gnu.org/licenses.
Direct correspondence concerning WCSLIB to mark@calabretta.id.au
Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
http://www.atnf.csiro.au/people/Mark.Calabretta
$Id: wcsprintf.h,v 5.16 2017/01/15 04:25:01 mcalabre Exp $
*=============================================================================
*
* WCSLIB 5.16 - C routines that implement the FITS World Coordinate System
* (WCS) standard. Refer to the README file provided with WCSLIB for an
* overview of the library.
*
*
* Summary of the wcsprintf routines
* ---------------------------------
* Routines in this suite allow diagnostic output from celprt(), linprt(),
* prjprt(), spcprt(), tabprt(), wcsprt(), and wcserr_prt() to be redirected to
* a file or captured in a string buffer. Those routines all use wcsprintf()
* for output. Likewise wcsfprintf() is used by wcsbth() and wcspih(). Both
* functions may be used by application programmers to have other output go to
* the same place.
*
*
* wcsprintf() - Print function used by WCSLIB diagnostic routines
* ---------------------------------------------------------------
* wcsprintf() is used by celprt(), linprt(), prjprt(), spcprt(), tabprt(),
* wcsprt(), and wcserr_prt() for diagnostic output which by default goes to
* stdout. However, it may be redirected to a file or string buffer via
* wcsprintf_set().
*
* Given:
* format char* Format string, passed to one of the printf(3) family
* of stdio library functions.
*
* ... mixed Argument list matching format, as per printf(3).
*
* Function return value:
* int Number of bytes written.
*
*
* wcsfprintf() - Print function used by WCSLIB diagnostic routines
* ----------------------------------------------------------------
* wcsfprintf() is used by wcsbth(), and wcspih() for diagnostic output which
* they send to stderr. However, it may be redirected to a file or string
* buffer via wcsprintf_set().
*
* Given:
* stream FILE* The output stream if not overridden by a call to
* wcsprintf_set().
*
* format char* Format string, passed to one of the printf(3) family
* of stdio library functions.
*
* ... mixed Argument list matching format, as per printf(3).
*
* Function return value:
* int Number of bytes written.
*
*
* wcsprintf_set() - Set output disposition for wcsprintf() and wcsfprintf()
* -------------------------------------------------------------------------
* wcsprintf_set() sets the output disposition for wcsprintf() which is used by
* the celprt(), linprt(), prjprt(), spcprt(), tabprt(), wcsprt(), and
* wcserr_prt() routines, and for wcsfprintf() which is used by wcsbth() and
* wcspih().
*
* Given:
* wcsout FILE* Pointer to an output stream that has been opened for
* writing, e.g. by the fopen() stdio library function,
* or one of the predefined stdio output streams - stdout
* and stderr. If zero (NULL), output is written to an
* internally-allocated string buffer, the address of
* which may be obtained by wcsprintf_buf().
*
* Function return value:
* int Status return value:
* 0: Success.
*
*
* wcsprintf_buf() - Get the address of the internal string buffer
* ---------------------------------------------------------------
* wcsprintf_buf() returns the address of the internal string buffer created
* when wcsprintf_set() is invoked with its FILE* argument set to zero.
*
* Function return value:
* const char *
* Address of the internal string buffer. The user may
* free this buffer by calling wcsprintf_set() with a
* valid FILE*, e.g. stdout. The free() stdlib library
* function must NOT be invoked on this const pointer.
*
*
* WCSPRINTF_PTR() macro - Print addresses in a consistent way
* -----------------------------------------------------------
* WCSPRINTF_PTR() is a preprocessor macro used to print addresses in a
* consistent way.
*
* On some systems the "%p" format descriptor renders a NULL pointer as the
* string "0x0". On others, however, it produces "0" or even "(nil)". On
* some systems a non-zero address is prefixed with "0x", on others, not.
*
* The WCSPRINTF_PTR() macro ensures that a NULL pointer is always rendered as
* "0x0" and that non-zero addresses are prefixed with "0x" thus providing
* consistency, for example, for comparing the output of test programs.
*
*===========================================================================*/
#ifndef WCSLIB_WCSPRINTF
#define WCSLIB_WCSPRINTF
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
#define WCSPRINTF_PTR(str1, ptr, str2) \
if (ptr) { \
wcsprintf("%s%#lx%s", (str1), (unsigned long)(ptr), (str2)); \
} else { \
wcsprintf("%s0x0%s", (str1), (str2)); \
}
int wcsprintf_set(FILE *wcsout);
int wcsprintf(const char *format, ...);
int wcsfprintf(FILE *stream, const char *format, ...);
const char *wcsprintf_buf(void);
#ifdef __cplusplus
}
#endif
#endif /* WCSLIB_WCSPRINTF */
|